User Tools

Site Tools


ru:google_recaptcha

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
ru:google_recaptcha [2023/01/09 03:06]
admin [Recaptcha for comments]
ru:google_recaptcha [2023/01/09 03:06] (current)
admin [Recaptcha for comments]
Line 1: Line 1:
 +====== Google ReCaptcha ======
  
 +Рекапча удобный вариант обойтись без обычной капчи для проверки чита
 +
 +Rак сделать:
 +
 +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 следующий код
 +
 +<code>
 +
 +  <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>
 +
 +
 +</code>
 +
 +тут надо обратить внимание на <!--TUBE_RECAPTCHA_SITE_KEY-->, это ваш Recaptcha V3 Site key (те НЕ секретный код)
 +
 +и сама форма комментария
 +<code>
 +
 +
 +<? 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>
 +
 +
 +</code>
 +
 +
 +
 +
 +
 +===== Recaptcha Anticheat=====
 +
 +
 +Есть интересный вариант проверки качества трафа с использованием речапчи от гугла. Суть в том, что гугл пишет какой % трафа он считает нормальным, не ботовым.
 +
 +На любой странице, но в 99% это конечно будет индекс и страница категории добавляем код
 +
 +<code>
 +<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>
 +</code>
 +
 +
 +на линках на галеры или категории добавляем class='gallery_link' как в примере ниже
 +
 +
 +<code>
 +<thumb num=1-10>
 +<a class='gallery_link' href='/gallery/<!--GALLERY_SLUG-->/index.html'> <!--GALLERY_ID--> </a> <br>
 +</thumb>
 +</code>
 +
 +можно конечно gallery_link заменить на что угодно, смысл в том что в JS мы вешаем событие по определению чита на эти линки  $('.gallery_link').each(function() {
 +
 +
 +4. в админке идем в Settings - layouts - и включаем колонку Google Recaptcha
 +
 +Все, теперь можно видеть процент хорошего трафа в Trade - колонка recaptcha
 +
 +PS тут надо обратить внимание что бесплатно у гугла только 1300 в час поэтому проверяются не все хиты, а выборчно (RECAPTCHA_MAX_RATE), если вы готовы доплатить гуглу за проверку - пишите в суппорт, доделаем версию без ограничения.
ru/google_recaptcha.txt · Last modified: 2023/01/09 03:06 by admin