【问题标题】:Ajax CAPTCHA validationAjax 验证码验证
【发布时间】:2012-04-18 05:39:47
【问题描述】:

通过 ajax 验证 CAPTCHA 是否合理(或安全)? 我想放置一个注册表单而无需重新加载任何页面。它安全吗? (我正在使用 Validation[1] 和 Form 插件)

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

【问题讨论】:

    标签: jquery ajax forms security captcha


    【解决方案1】:

    您不能依赖 JavaScript 来保护任何东西。您可以将其用作首次通过,但您仍然需要在服务器上进行验证码验证(看起来您正计划这样做)。例如,参见:http://www.howtocreate.co.uk/tutorials/javascript/security

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

    【讨论】:

      【解决方案2】:

      一个合理的实现方式如下:

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

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

      3) 服务器检查用户提交的值。如果与验证码中的文本相同,则返回第一步生成的服务器端密钥。

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

      【讨论】:

        【解决方案3】:

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

        编辑 |我也找到了文章链接http://www.thetutlage.com/post=TUT120

        【讨论】:

        • 太棒了,我在你发布之前就读到了,哈哈,谢谢
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多