Капча майнинг


Важно! Статья обновлена, пример убран. И вообще я не рекомендую ставить такой скрипт на сайт, так как яндекс против. Вот что он пишет:

Сайт или некоторые его страницы показываются с пометкой «Сайт может быть опасен». В результатах поиска позиции страниц с такой пометкой понижены.

На сайте обнаружен скрипт, предназначенный для майнинга криптовалют на компьютерах пользователей, поэтому в результатах поиска ссылки на сайт сопровождаются предупреждением пользователей и ранжируются ниже. 

Найдите модифицированные файлы на сайте и удалите скрипты криптоджекинга. После этого не забудьте нажать кнопку «Я всё исправил». 

По данным Яндекса скрипт подгружается отсюда:
В этой статье я расскажу вам, как поставить на свой блог защиту от роботов (в комментарии или обратную связь), а также заработать при этом немного криптовалюты.

Итак, предположим, что ваш сайт атаковали малолетние или не очень хулиганы и начинают спамить в комментариях или обратную связь. Есть очень простой способ борьбы с ними – установить капчу от гугла. Но, можно при этом еще и заработать. Как? Очень просто: при вводе капчи заставлять браузер пользователя с помощью 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:

<?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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, капча, майнинг, php, криптовалюты




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.



Имена хостов
Рисование дуги на C#
Что такое WPD