noCaptcha:阻止自动重新加载以捕获失败的尝试

时间:2015-11-04 17:03:01

标签: recaptcha

我正在将NoCaptcha集成到一个网站,并希望自己捕获失败的验证码。可悲的是,如果没有正确解决,“图像选择”Captcha会立即重新加载。

因此,如果存在“挑选所有显示咖啡的图像”并且用户未正确选择所有相应图像的挑战,则挑战会立即重新加载。但我希望无论如何都要发布数据(和表格)并自行检查Captcha的正确性。

这是一个如何运作的简约示例。我相信,如果Captcha没有立即重新加载,它会起作用。

<?php
    require_once('recaptchalib.php');
    $publickey = "-----";
    $privatekey = "-----";
    try{
        if(isset($_POST['g-recaptcha-response'])){
            $captcha=$_POST['g-recaptcha-response'];
            if(!$captcha){ exit; }
            $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$privatekey."&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
            if($response.success==false){
                // Do something
            } else {
                // Do something else
            }
        }
        else
        {
            ?>
            <html lang="en"> 
            <head> 
                <meta charset="utf-8" /> 
                <script src='https://www.google.com/recaptcha/api.js'></script>
            </head>
            <body>
                 <form method="post" action="thisfile.php">
                   <div class="g-recaptcha" data-sitekey="<?php echo $publickey; ?>"></div>
                   <input type="submit" value="Absenden" />
                 </form>
            </body>
            </html>
            <?php
        }

    } catch (Exception $e) {
        error_log($e->getMessage());
    }
?>

你知道一种防止自动重装的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

你应该知道reCaptcha背后的operations。 Google reCaptcha API(https://www.google.com/recaptcha/api.js)执行reCaptcha操作的所有工作;允许没有网站所有者互动(网站验证除外)及其reCaptcha。

因此,您对prevent reCaptcha auto-reloading或类似的尝试是否会破坏其操作或导致其对最终用户行为不当。