它是合理的(或安全)通过AJAX来验证验证码? 我想放置一个注册表格,没有任何页面重载。 是否安全? (我使用验证[1]和表格插件)
[1] http://bassistance.de/jquery-plugins/jquery-plugin-validation/
它是合理的(或安全)通过AJAX来验证验证码? 我想放置一个注册表格,没有任何页面重载。 是否安全? (我使用验证[1]和表格插件)
[1] http://bassistance.de/jquery-plugins/jquery-plugin-validation/
你不能依赖于JavaScript,以确保任何事情。 您可以使用它作为一个第一次通过,但你仍然需要做的服务器上的验证码验证(因为它似乎你打算做)。 例如,请参阅: http://www.howtocreate.co.uk/tutorials/javascript/security
我有一个完整的AJAX解决方案(没有重新加载页面)关注的是,它很可能会成为可能的一个用户绕过从POST回返回值,然后继续去,即使验证码无效。 但是,你可以跟踪任何验证码失败的服务器会话,并在您的申请表格最后仔细检查结果,因为最终一切都将进行服务器端。 如果验证码是从来没有有效的,那么你就必须拒绝注册,无论你从客户端接收的任何其他数据。
实现这个合理的方法如下:
1)当请求表单页面,生成特定于会话的服务器端密钥。
2)当用户按下“提交”,使用AJAX调用发送用户输入的验证码文本到服务器。
3)服务器检查用户提交的值。 如果它等于在验证码的文本,返回在步骤1中生成的服务器侧密钥。
4)浏览器目前拥有服务器端的密钥。 当表单提交,检查由浏览器指定的服务器侧密钥在步骤1,如果是,则用户必须通过验证码生成的服务器端密钥相匹配,因此处理该请求。
是的,它可以使用PHP和AJAX可以做到,但你需要每一个验证码加载该Reload按钮的时间来清除缓存。 这是给你一个很好的例子.. http://www.thetutlage.com/demo/captcha/
编辑| 我还发现,文章链接http://www.thetutlage.com/post=TUT120
即使你使用AJAX,它还是服务器端,因为您对服务器调用验证。