我正在开发一个投票应用程序,人们可以根据需要进行多次投票,我希望在其中添加一个 reCaptcha 复选框,而不是让人们必须在几票后填写检查图像,我'宁愿让他们每次都填写复选框。
我尝试将安全级别更改为最低设置,但它在大约两三票后仍然显示测试。
我知道在安全方面这不是一个好主意,但是让人们每次检查多张图像而不是仅仅单击一次,这对阻止垃圾邮件程序有一些很好的帮助,这感觉不太好。
我正在开发一个 Django 应用程序并使用Django-reCaptcha 2实现了 reCaptcha 。
我正在开发一个投票应用程序,人们可以根据需要进行多次投票,我希望在其中添加一个 reCaptcha 复选框,而不是让人们必须在几票后填写检查图像,我'宁愿让他们每次都填写复选框。
我尝试将安全级别更改为最低设置,但它在大约两三票后仍然显示测试。
我知道在安全方面这不是一个好主意,但是让人们每次检查多张图像而不是仅仅单击一次,这对阻止垃圾邮件程序有一些很好的帮助,这感觉不太好。
我正在开发一个 Django 应用程序并使用Django-reCaptcha 2实现了 reCaptcha 。
Google 的 reCAPTCHA 2.0 文档中没有任何地方声明您可以执行此操作。我会假设,基于对 CAPTCHA 工作原理的一些研究,用户不可能仅设置 CAPTCHA 复选框。
Google 的 reCAPTCHA 使用各种测试,包括请求跟踪、页面交互跟踪、滚动跟踪和击键跟踪,以尝试检测网站上的用户是否为人类。您可以在此处阅读有关此内容的更多信息:http: //scraping.pro/no-captcha-recaptcha-challenge/
如果 Google 不能以足够高的确定性假设用户是人类,那么它将显示挑战以尝试验证这一点。
正如您所说,您可以降低管理设置中的安全级别,这将降低谷歌验证用户为人类所需的阈值,但如果仍未满足,则会提出挑战。
在您的情况下,它工作了几次然后向您提出挑战,这可能是因为 Google 检测到您的请求计数异常,因此无法保证您达到验证您是人的最低阈值。因此,您会受到挑战。
因此,总而言之,您似乎不能仅将其更改为复选框,因为 Google 仍然需要能够获得足够的数据来证明用户是人类。
但是,在您想象的最低安全级别设置中,大多数真实用户只会收到复选框。
您还可以检查在reCAPTCHA 管理面板中生成了多少挑战,如下所述:
索引.html
<html>
<head>
<title>Google recapcha demo - Codeforgeek</title>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
<h1>Google reCAPTHA Demo</h1>
<form id="comment_form" action="form.php" method="post">
<input type="email" placeholder="Type your email" size="40"><br><br>
<textarea name="comment" rows="8" cols="39"></textarea><br><br>
<input type="submit" name="submit" value="Post comment"><br><br>
<div class="g-recaptcha" data-sitekey="=== Your site key ==="></div>
</form>
</body>
</html>
验证.php
<?php
$email;$comment;$captcha;
if(isset($_POST['email']))
$email=$_POST['email'];
if(isset($_POST['comment']))
$comment=$_POST['comment'];
if(isset($_POST['g-recaptcha-response']))
$captcha=$_POST['g-recaptcha-response'];
if(!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$response=json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']), true);
if($response['success'] == false)
{
echo '<h2>You are spammer ! Get the @$%K out</h2>';
}
else
{
echo '<h2>Thanks for posting comment.</h2>';
}
?>