- en
- ru
Table of Contents
Captcha
Рекапча удобный вариант обойтись без обычной капчи для проверки чита
Как сделать:
1. Идем на https://developers.google.com/recaptcha, регаемся и получаем Recaptcha V3 Site key Recaptcha V3 Secret key
2. вписываем эти значения в Rotation - Settings - Social и там же переключаем “Use Captcha on Comments?”
Recaptcha for comments
Суть рекапчи в том, что в любой форме добавляется JS код от гугла для проверки чита, и поле куда гугл пишет результат проверки
Пример для страницы комментариев. Добавляем в head следующий код
<head>
<title> <!--GALLERY_SLUG--> with reCAPTCHA</title>
<script src="https://www.google.com/recaptcha/api.js?render=<!--TUBE_RECAPTCHA_SITE_KEY-->"></script>
<script>
function CheckRecaptcha() {
grecaptcha.ready(function() {
grecaptcha.execute('<!--TUBE_RECAPTCHA_SITE_KEY-->', {action: 'report_form'}).then(function(token) {
document.add_comment.recaptcha.value = token;
document.add_comment.submit();
});
});
}
</script>
тут надо обратить внимание на <!–TUBE_RECAPTCHA_SITE_KEY–>, это ваш Recaptcha V3 Site key (те НЕ секретный код)
и сама форма комментария
<? if ('<!--ERROR-->' != 'OK') echo "error: <!--ERROR-->"; ?>
<FORM name="add_comment" method="POST">
<input type="hidden" name="action" value="add_comment">
<input type="hidden" name="recaptcha" id="recaptcha" value=""> Вот сюда гугл запишет ответ
<label>Name:</label> <input class="s_input" type="text" name='username' id='username' value="<?=$user['username']?>">
<br>
<textarea class="s_text" class="ph2" name='comment' id='comment' rows=5 cols=35 value="Leave Your Comments Here"></textarea>
<input type=button value='Send comment' onClick=CheckRecaptcha()> тут надо обратить внимание что это не submit, а именно button, те форма сабмитится после того как гугл заапрувил ее.
</form>
Turnstile captcha
Аналогично google recaptcha
1. добавляем в страницу
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
2. в форму на сайте
<div class="cf-turnstile" data-sitekey="<!--TUBE_TURNSTILE_SITE_KEY-->"></div>
3. в сетингах прописываем
Turnstile Site key Turnstile Secret key
Recaptcha Anticheat
Есть интересный вариант проверки качества трафа с использованием речапчи от гугла. Суть в том, что гугл пишет какой % трафа он считает нормальным, не ботовым.
На любой странице, но в 99% это конечно будет индекс и страница категории добавляем код
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js?render=<!--TUBE_RECAPTCHA_SITE_KEY-->"></script>
<script>
req_flag = false;
recaptcha_code = '';
if ('<!--RECAPTCHA_MAX_RATE-->') {
if (Math.random() > '<!--RECAPTCHA_MAX_RATE-->') req_flag = true;
}
grecaptcha.ready(function() {
grecaptcha.execute('<!--TUBE_RECAPTCHA_SITE_KEY-->', {action: 'index_page'}).then(function(token) {
recaptcha_code = token;
});
});
$(document).ready(function(){
$('.gallery_link').each(function() {
$(this).click(function(){
if (req_flag || recaptcha_code === '') return;
req_flag = true;
$.post('/',
{
'action': 'check_recaptcha',
'recaptcha_code': recaptcha_code,
},
function (data) {
}
);
});
});
});
</script>
на линках на галеры или категории добавляем class='gallery_link' как в примере ниже
<thumb num=1-10> <a class='gallery_link' href='/gallery/<!--GALLERY_SLUG-->/index.html'> <!--GALLERY_ID--> </a> <br> </thumb>
можно конечно gallery_link заменить на что угодно, смысл в том что в JS мы вешаем событие по определению чита на эти линки $('.gallery_link').each(function() {
4. в админке идем в Settings - layouts - и включаем колонку Google Recaptcha
Все, теперь можно видеть процент хорошего трафа в Trade - колонка recaptcha
PS тут надо обратить внимание что бесплатно у гугла только 1300 в час поэтому проверяются не все хиты, а выборчно (RECAPTCHA_MAX_RATE), если вы готовы доплатить гуглу за проверку - пишите в суппорт, доделаем версию без ограничения.
