Способ защиты от спам ботов на PHP

Danone

New member
Метод основывается на том, что большинство ботов вообще не поддерживают JavaScript, а если они и поддерживают его, то должны магическим образом научиться считывать содержимое "антибот поля".
Данный способ защитит вас от спам ботов на 100%.

В нужную форму, например, регистрация вставляем скрытый input и наш javascript

Код:

form method="POST">
input type="hidden" name="check" class="check">
! -- Остальной код -->
/form>
script>
$(document).ready(function () {
$(.check).val(? echo $token;?>);
});
/script>
Скрипт будет вставлять значение токена ($token) в скрытый input после полной загрузки страницы.

В php файл вставляем:

Код:

$token = md5(uniqid(mt_rand() . microtime()));
$_SESSION[token] = $token;
Что делает код? Генерирует уникальный токен в MD5 и кладёт его в сессию.

Далее, где у вас происходит обработка данных, вставляем код (пример):

Код:

if (isset($_POST[submit])) {
$clientToken = $_POST[check]; // данные inputa из формы
if ($serverToken) { // тут мы проверяем, не задана ли переменная, иначе в сессии будет другой токен, который сгенерируется только после нажатия на кнопку.
$serverToken = $_SESSION[token];
}
if ($clientToken != $serverToken) { // Если токены не совпадают, выдаем ошибку.
exit;
}
// остальной код
}
Аналогичным способом можно сделать проверку через $_COOKIE
 
Яндекс.Метрика
Сверху