Ajax CAPTCHAvalidation

通过ajaxvalidationCAPTCHA是否合理(或安全)? 我想要一个没有任何页面重新加载的注册表单。 它安全吗? (我使用Validation [1]和Form插件)

[1] http://bassistance.de/jquery-plugins/jquery-plugin-validation/

你不能依靠JavaScript来保护任何东西。 您可以将它作为第一遍使用,但您仍需要在服务器上进行validation码validation(因为您似乎计划这样做)。 例如,请参阅: http : //www.howtocreate.co.uk/tutorials/javascript/security

我对完整的AJAX解决方案(没有页面重新加载)的关注是,即使validation码无效,用户也可能绕过POST后退的返回值并继续运行。 但是,您可以跟踪服务器会话中的任何validation码失败,并在注册表单的末尾仔细检查结果,因为最终所有内容都将在服务器端完成。 如果validation码永远不会有效,那么无论您从该客户端收到任何其他数据,您都必须拒绝注册。

实现这一点的合理方法如下:

1)请求表单页面时,生成特定于会话的服务器端密钥。

2)当用户按下“提交”时,使用AJAX调用将用户输入的validation码文本发送到服务器。

3)服务器检查用户提交的值。 如果它等于validation码中的文本,则返回步骤1中生成的服务器端密钥。

4)浏览器现在有服务器端密钥。 在表单提交时,检查浏览器指定的服务器端密钥是否与步骤1中生成的服务器端密钥匹配。如果是,则用户必须已通过validation码,因此请处理该请求。

是的,可以使用php和ajax完成,但每次validation码加载重新加载按钮时都需要清除缓存。 这是一个完美的例子.. http://www.thetutlage.com/demo/captcha/

编辑| 我还发现文章链接http://www.thetutlage.com/post=TUT120

即使您使用AJAX,它仍然是服务器端,因为您调用服务器来validation它。