跳过reCAPTCHA图像挑战的方法

时间:2017-08-18 10:49:56

标签: recaptcha

我正在我的一个网站上实施reCAPTCHA,并且我已经成功实施了它。它工作正常。有时reCAPTCHA仅通过点击"我不是机器人"来完成。但有时它会显示图像网格以选择正确的图像并完成验证码。

我只是想知道这是否可能。我们是否可以禁用图像选择挑战,因此只能通过单击“我不是机器人”来完成reCAPTCHA"。 Google用于显示图像网格的理论是什么?

我已经读过这个:Prevent reCaptcha multiple image selections但是那里没有足够的信息。

谢谢!

我在下方添加了recaptcha/api.js

<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallbackAuto&render=explicit&hl=<?php echo $lang;?>" async defer >

我的reCAPTCHA代码如下:

    var onloadCallbackAuto = function() {
         /// do something....
    }
    var verifyCallback = function() {
         /// do something....
    }
    grecaptcha.render('gReCaptchaDiv', {
     'sitekey' : '<?php echo $siteKey;?>',
     'callback' : verifyCallback,
     'theme' : 'light'
    });

2 个答案:

答案 0 :(得分:34)

新的Google reCaptcha实现了一些复杂的算法来决定是否有真实的用户。使用的一些方法是检测请求重复(如果有一个请求在一个特定源的一小段时间内反复重复),计时(从脚本初始化起经过的时间),光标事件(如移动和点击),滚动事件,javascript常见事件触发和XHR调用。

所有这些以及更多方法结合了不可见的reCaptcha,在Checkbox reCaptcha的情况下,其中一些检测方法也会被触发。如果算法检测到人类用户不寻常的事情,例如,点击reC​​aptcha复选框而不触发mousemove事件,则不会评估为人类结果,因此reCaptcha必须依赖其他内容以确保存在一个人在做东西,而不是一个脚本机器人。

答案是你无法避免它。如果基本的reCaptcha方法失败,那么它必须做一些事情来提供保护。

请记住,您的应用程序的用户不会像您一样经常看到图像方法。我猜你做了一些测试并在做了一些代码更新之后一次又一次地尝试相同的事情,因此你会因为同一来源的重复而更频繁地失败。

答案 1 :(得分:5)

不,您不能跳过它。

令我惊讶的是,没有人指出为什么要得到它们。图像重新捕获不仅用于检测用户不是机器人。如果您注意到,它们总是与交通,桥梁,标志,商店门面等相关。 Google使用此工具训练主要用于自动驾驶汽车的人工神经网络。这种方法称为监督训练。

在神经网络中,有两种训练类型:有监督训练和无监督训练。有监督的培训是指您提供一种手动评估网络性能的机制。因此,当您选择所有这些汽车图片时,网络也在尝试做同样的事情,这基本上是在评估网络的性能。输入的信息越多,通过调整网络中每个神经元的权重,它就会变得越智能。

在无人监督的培训中,网络必须在没有外部帮助的情况下弄清您要教的内容。它的效率要低得多,但仍然可以完成。