[star7th/showdoc][BUG]登录页面的验证码无效(形同虚设)

2024-08-15 66 views
0
  • 您好,我发现登录页面的验证码形同虚设,毫无作用。

  • 所以我检查了后端的代码,虽然不确定是不是版本的问题,但是还是反馈一下BUG。

  • 在后端的controler层,您的逻辑是:如果密码输入超过了一定的次数,没有验证码或者验证码不对,函数返回,提示报错信息!

  • 但是正确的逻辑应该是:如果有验证码并且验证码不对,返回函数,提示验证码错误信息!

  • 这个是您login()函数的内容(注释部分是之前的,新加的部分是我添加的,可能可以修复这个bug?) image

  • 这个是您 register() 函数的内容 image

我不确定这个bug是否已经修复,所以在这里提出issues!

image

回答

7

我思考过了,我写的逻辑没问题。你这样才有问题。你这样才会导致验证码形同虚设。你是有验证码才会去检查。这样别人模拟数据不传验证码参数就绕过去了。

4

showdoc的验证码逻辑就是这样:如果密码输入超过了一定的次数,没有验证码或者验证码不对,函数返回,提示报错信息!

如果按你的逻辑,我只要模拟请求接口不传送c_code参数,就完全无视你的验证码。这个错误我当年大学的教务系统也犯错过,所以被模拟入侵了。我对这个印象很深,所以一直有意避免这个问题。

7

还有就是说明一点,showdoc为了方便用户登录,一开始是不需要密码的。只有多次输入错误了才需要验证码(防止被工具枚举密码)

2

不好意思不好意思,是我糊涂了,我理解错误了。抱歉抱歉 我这里测试的过程是这样的。 首先不输入任何用户名和密码,单击登录,此时验证码输入框已经显示出来了。 然后输入showdoc的用户名和密码,123456,验证码空,然后单击登录。 用户登录成功了。

我后来仔细看了一下后端好像是针对用户名来统计错误输入密码的次数的,所以还是有一点的小问题。 感觉可以是这样的逻辑?

如果前端发来的有验证码,校验验证码是否正确。 如果是用户连续登录错误了,此时一定要校验有没有验证码,按照您的逻辑,(没有验证码或验证码不对,返回error)

抱歉我刚刚没有仔细看sorry。

9

不好意思不好意思,是我糊涂了,我理解错误了。抱歉抱歉 我这里测试的过程是这样的。 首先不输入任何用户名和密码,单击登录,此时验证码输入框已经显示出来了。 然后输入showdoc的用户名和密码,123456,验证码空,然后单击登录。 用户登录成功了。

我后来仔细看了一下后端好像是针对用户名来统计错误输入密码的次数的,所以还是有一点的小问题。 感觉可以是这样的逻辑?

如果前端发来的有验证码,校验验证码是否正确。 如果是用户连续登录错误了,此时一定要校验有没有验证码,按照您的逻辑,(没有验证码或验证码不对,返回error)

抱歉我刚刚没有仔细看sorry。