【问题标题】:Captcha does not work in chrome验证码在 chrome 中不起作用
【发布时间】:2019-01-07 00:19:47
【问题描述】:

我在表单中使用 Simple PHP Captcha,它在 Firefox、Opera 和 IE 中运行良好,但在 Chrome 中却不行。图像加载正常,我能够传递验证码,但是当我尝试像这样检查它时它失败了:

if( $_POST['CaptchaCode'] === $_SESSION['captcha']['code'] )

当我 echo $_POST['CaptchaCode'] 时,我得到了我输入的正确代码,但是当我 echo $_SESSION['captcha']['code'] 时,我得到的代码与我在验证码中看到的不同。好像是新生成的。

提前致谢。

【问题讨论】:

  • 您确定它与您的浏览器有关吗?这看起来很奇怪,因为这里的一切都是服务器端的。如果你用 Chrome 去那里(labs.abeautifulsite.net/simple-php-captcha),图像和 var_dump 中的代码有区别吗?
  • 我确信它可以在我的电脑上运行 Firefox、Opera 和 IE,但不能在 Chrome 中运行。当我访问您编写的网站时,它甚至可以在 Chrome 中正常工作。但是有区别。您发布的页面可能只使用一个 php 文件,而我的页面将表单数据发送到另一个 php 文件。

标签: php google-chrome captcha


【解决方案1】:

我遇到了同样的问题。 “简单 PHP 验证码”不仅仅在 Chrome 中工作。

我的案例可能非常具体,但可能会有所帮助。首先,您需要知道:

  • 我的应用返回 404 错误页面,其中包含带有验证码的联系表单。
  • 即使您没有在 <head> 部分声明任何网站图标,Google Chrome 也会查找 favicon.ico。在这种情况下,Chrome 会查找根目录 (/favicon.ico)。

其余的很明显 :) 在我的服务器上没有 favicon,所以我的“联系我们”页面加载了验证码图像,但另外 google 发送了对 favicon.ico 的请求,我的服务器返回 404 错误页面,还包含与 CAPTCHA 的联系表格,它重写了 $_SESSION 中的代码。

所以我通过添加 favicon.ico 解决了这个问题 :)

为了使这个答案更笼统,问题是肯定的,验证码是由于某种原因重新生成的。

【讨论】:

    【解决方案2】:

    我找到了一个不完美但有效的解决方案。我在我的表单中添加了一个隐藏的输入,其中包含这样的正确代码:

    <input type="hidden" name="hashCode" value=<?php echo "'" . md5($_SESSION['captcha']['code']) . "'" ?>> 
    

    然后我执行检查:

    if( md5(strtoupper($_POST['captchaCode'])) === $_POST['hashCode'] )
    

    现在它也可以在 Chrome 中使用。但我仍然想知道为什么在 Chrome 中提交表单后,$_SESSION['captcha']['code'] 会发生变化。

    【讨论】:

    • 您是否将表单提交到 $_SESSION['captcha'] = captcha(); 的页面是否存在(例如将其提交到同一页面)?因为如果你这样做了,就会生成一个新的验证码,而且它会发生变化是很正常的。
    • 那么我看不出它为什么不起作用的任何原因。给您的一个提示:您的解决方法直接与验证码的相反目的(知道填充验证码的是否真的是人)。 MD5 不再安全,并且已经存在巨大的哈希字典。所以你绝对不应该把它贴在你的页面上,因为一个好的程序员不会有任何困难从 MD5 中找到验证码。
    • 感谢您的关注和关注。我知道不应该这样做但是我不知道MD5很容易被破解。
    【解决方案3】:

    我也遇到过同样的问题,在我的情况下,Chrome 中安装的 adBlocker 扩展阻止了验证码的呈现。 我正在使用 Ghostery。

    尝试禁用您已安装的所有广告拦截器。

    【讨论】:

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