我可以让 google reCaptcha 2.0 每次只显示复选框吗
Can i make google reCaptcha 2.0 only show the checkbox every time
我正在开发一个投票应用程序,人们可以根据需要多次投票,我希望其中有一个 reCaptcha 复选框,而不是让人们必须在几票,我宁愿他们每次都只填写复选框。
我尝试将安全级别更改为最低设置,但它在大约两三票后仍然显示测试。
我知道这在安全方面不是一个好主意,但让人们每次检查多张图片而不是只点击一次就感觉不太好,这已经可以很好地帮助阻止垃圾邮件机器人了。
我正在开发 Django 应用程序并使用 Django-reCaptcha 2 实现了 reCaptcha。
Index.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>
verify.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>';
}
?>
Google 的 reCAPTCHA 2.0 的文档中没有任何地方说明您可以执行此操作。 我假设,基于对如何验证码有效,用户不可能只设置验证码复选框。
Google 的 reCAPTCHA 使用各种测试,包括请求跟踪、页面交互跟踪、滚动跟踪和击键跟踪,以尝试检测网站上的用户是否为人类。您可以在此处阅读更多相关信息:
http://scraping.pro/no-captcha-recaptcha-challenge/
如果Google不能足够确定地假设用户是人类,那么它会显示质询以尝试验证这一点。
正如您所说,您可以降低管理员设置中的安全级别,这将降低 Google 验证用户是否为人类所需的阈值,但如果仍未满足要求,则会提出挑战.
在你的情况下,它工作了几次,然后给你带来了挑战,这可能是因为 Google 检测到你的请求计数异常,因此不能保证你达到最低阈值验证你是一个人。因此,您收到了一个挑战。
所以总而言之,您似乎无法将此更改为复选框,因为 Google 仍然需要能够获得足够的数据来证明用户是人类。
然而,在您想象的最低安全级别设置中,大多数真实用户只会收到复选框。
您还可以在 reCAPTCHA admin 面板中检查生成了多少挑战,如此处记录:
我正在开发一个投票应用程序,人们可以根据需要多次投票,我希望其中有一个 reCaptcha 复选框,而不是让人们必须在几票,我宁愿他们每次都只填写复选框。
我尝试将安全级别更改为最低设置,但它在大约两三票后仍然显示测试。
我知道这在安全方面不是一个好主意,但让人们每次检查多张图片而不是只点击一次就感觉不太好,这已经可以很好地帮助阻止垃圾邮件机器人了。
我正在开发 Django 应用程序并使用 Django-reCaptcha 2 实现了 reCaptcha。
Index.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>
verify.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>';
}
?>
Google 的 reCAPTCHA 2.0 的文档中没有任何地方说明您可以执行此操作。 我假设,基于对如何验证码有效,用户不可能只设置验证码复选框。
Google 的 reCAPTCHA 使用各种测试,包括请求跟踪、页面交互跟踪、滚动跟踪和击键跟踪,以尝试检测网站上的用户是否为人类。您可以在此处阅读更多相关信息: http://scraping.pro/no-captcha-recaptcha-challenge/
如果Google不能足够确定地假设用户是人类,那么它会显示质询以尝试验证这一点。
正如您所说,您可以降低管理员设置中的安全级别,这将降低 Google 验证用户是否为人类所需的阈值,但如果仍未满足要求,则会提出挑战.
在你的情况下,它工作了几次,然后给你带来了挑战,这可能是因为 Google 检测到你的请求计数异常,因此不能保证你达到最低阈值验证你是一个人。因此,您收到了一个挑战。
所以总而言之,您似乎无法将此更改为复选框,因为 Google 仍然需要能够获得足够的数据来证明用户是人类。
然而,在您想象的最低安全级别设置中,大多数真实用户只会收到复选框。
您还可以在 reCAPTCHA admin 面板中检查生成了多少挑战,如此处记录: