Могу ли я сделать Google ReCaptcha 2.0 только показывать флажок каждый раз
Я работаю над приложением для голосования, в котором люди могут голосовать столько раз, сколько они хотят, и я хотел бы, чтобы в нем был флажок reCaptcha, но вместо того, чтобы заставлять людей заполнять галочки, проверять изображения после нескольких голосов, Я бы предпочел, чтобы они просто заполняли флажок каждый раз.
Я попытался изменить уровень безопасности до минимального значения, но он показывает тест примерно после двух или трех голосов.
Я знаю, что это не очень хорошая идея с точки зрения безопасности, но просто нехорошо, когда люди проверяют несколько изображений каждый раз, вместо того, чтобы просто щелкнуть по нему один раз, что уже помогло бы сдерживать спам-ботов.
Я работаю над приложением Django и реализовал reCaptcha с Django-reCaptcha 2.
2 ответа
Нет, где в документации для Google reCAPTCHA 2.0 говорится, что вы можете сделать это. Я бы предположил, основываясь на некоторых исследованиях того, как работает CAPTCHA, что для пользователя невозможно установить флажок только для CAPTCHA.
Google reCAPTCHA использует различные тесты, включая отслеживание запросов, отслеживание взаимодействия страниц, отслеживание прокрутки и отслеживание нажатий клавиш, чтобы попытаться определить, является ли пользователь на сайте человеком. Вы можете прочитать больше об этом здесь: http://scraping.pro/no-captcha-recaptcha-challenge/
Если Google не может с достаточной уверенностью предположить, что пользователь является человеком, тогда он попытается проверить это.
Как вы заявили, вы можете понизить уровень безопасности в настройках администратора, и это понизит порог, который требуется Google для проверки пользователя как человека, но если это все еще не выполнено, будет предложена проблема.
В вашем случае, когда он работает несколько раз, а затем ставит перед вами задачу, это, вероятно, связано с тем, что Google обнаружил, что количество ваших запросов является ненормальным, и, следовательно, не может гарантировать, что вы достигнете минимального порога, чтобы убедиться, что вы человек. Поэтому вы получаете вызов.
Таким образом, в общем, кажется, что вы не можете поменять этот флажок только на то, что Google все еще нужно иметь возможность получать достаточно данных, чтобы доказать, что пользователь является человеком.
Тем не менее, при наименьшем уровне безопасности вы можете себе представить, что большинство реальных пользователей получат только флажок.
Вы также можете проверить, сколько задач генерируется в административной панели 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>';
}
?>