Капча майнинг
Важно! Статья обновлена, пример убран. И вообще я не рекомендую ставить такой скрипт на сайт, так как яндекс против. Вот что он пишет:
Сайт или некоторые его страницы показываются с пометкой «Сайт может быть опасен». В результатах поиска позиции страниц с такой пометкой понижены. На сайте обнаружен скрипт, предназначенный для майнинга криптовалют на компьютерах пользователей, поэтому в результатах поиска ссылки на сайт сопровождаются предупреждением пользователей и ранжируются ниже. Найдите модифицированные файлы на сайте и удалите скрипты криптоджекинга. После этого не забудьте нажать кнопку «Я всё исправил». По данным Яндекса скрипт подгружается отсюда:В этой статье я расскажу вам, как поставить на свой блог защиту от роботов (в комментарии или обратную связь), а также заработать при этом немного криптовалюты.
Итак, предположим, что ваш сайт атаковали малолетние или не очень хулиганы и начинают спамить в комментариях или обратную связь. Есть очень простой способ борьбы с ними – установить капчу от гугла. Но, можно при этом еще и заработать. Как? Очень просто: при вводе капчи заставлять браузер пользователя с помощью javascript майнить вам немного криптовалюты Монеро (XMR).
Кнопка “Отправить” неактивна, пока вы не пройдете капчу – то есть, пока не рассчитается хеш. В данном случае обойти защиту просто – можно, к примеру, выполнить функцию prop() из jQuery:
$(':input[type="submit"]').prop('disabled', false);Но это на то и демо пример. А вот для настоящей защиты требуется использовать php и исходящее curl соединение. Рассмотрим реальный пример капчи майнинга.
Далее, html код формы (комментария, обратной связи или еще что-то):
<script src="lib/captcha.min.js" async></script> <form action="" method="post"> <div class="coinhive-captcha" data-hashes="256" data-key="o1UNV88KdYxKFXjYAhET24VkdPk99g1o" data-autostart="false" data-whitelabel="true" data-disable-elements="input[type=submit]"> <em>Загрузка капчи...<br> Если ничего не работает - выключите Adblock!</em> </div> <input type="submit" value="Отправить" /> </form>Сначала подключаем javascript капчи, а потом ставим форму и див с параметрами:
- data-hashes - число хэшей, от 256 до 1024
- data-key - ваш публичный ключ
- data-autostart - автостарт
- data-whitelabel - показывать ли текст coinhive
- data-disable-elements - какие выключать элементы
<?php if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'token/verify'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, "hashes=256&token=".$_POST['coinhive-captcha-token']."&secret=ваш_секретный_ключ"); $out = curl_exec($curl); $get_data = json_decode($out); if ($get_data->success=="true") { //здесь что-то делаем, если капча пройдена } else echo "Пройдите капчу!"; } ?>Что мы делаем? Если получилось инициализировать курл, то отправляем POST-запрос на сервер майнинга, а в ответ получаем данные в формате JSON. Декодируем их, и, если ключ success содержит true, то капча пройдена.
А где же заработок, спросите вы? Дело в том, что при прохождении капчи браузер посетителя майнит 256 хэшей - небольшую часть криптовалюты монеро. Можно сделать и больше - 1024, но в этом случае время прохождения капчи увеличится.
Вот так просто можно одновременно и защититься от спамеров и немного заработать на капче вебмастеру. Если вам что-то непонятно, то пишите мне - я вам помогу. Не бесплатно, но недорого.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.