Как защитится от спам ботов?
Сегодня публикую очень полезный php скрипт который поможет защитится от спам ботов, сам по себе скрипт не защитит ваш сайт на 100 процентов но уменьшит количество спама на страницах вашего сайта, лично я использовал скрипт antibot для защиты модуля комментариев, основная задача скрипта ограничить POST и GET запросы, проще говоря к примеру нельзя будет добавлять комментарий чаще чем раз в пять минут или раз в одну минуту это вы настраиваете уже сами.
Для примера возьмем модуль комментариев который как минимум состоит из двух файлов это сама форма и обработчик который и отвечает за проверку и запись комментариев в базу или файл.
А вот собственно и сам скрипт:
// Ключ массива для сохранения времени запроса -
// измените эту константу, на всякий случай.
define ('ANTIBOT_SESSION_TIME','antibot_session_time');
// По-умолчанию, не меньше пяти секунд для запроса POST
define ('ANTIBOT_TIME_LIMIT_POST', 5);
// По-умолчанию, не меньше 200 миллисекунд для запроса GET.
// Эта величина нуждается в тестировании на практике и "подгонке".
define ('ANTIBOT_TIME_LIMIT', 0.2);
// HTTP-заголовок "403 доступ запрещен".
define ('ANTIBOT_HEADER', 'HTTP/1.1 403 Forbidden');
function antibot_save_time()
{// Сохраняем время в сессию.
$_SESSION[ANTIBOT_SESSION_TIME] = microtime(true);
//Не забывать вызывать эту функцию при каждом
//исполнении скрипта.
}
function antibot_check_time($limit=ANTIBOT_TIME_LIMIT)
{// Проверка временного интервала между запросами.
if (!isset($_SESSION[ANTIBOT_SESSION_TIME])) {
// Если ещё не сохраняли время ни разу
// значит, сравнивать пока не с чем .
return true;
} else {
// А иначе - проверим и вернем результат
return (microtime(true) - $_SESSION[ANTIBOT_SESSION_TIME]) > $limit;
}
}
function antibot_is_post()
{// Метод запроса "POST"?
return $_SERVER['REQUEST_METHOD'] == 'POST';
}
function antibot_check_post($limit=ANTIBOT_TIME_LIMIT_POST)
{// Проверяем только POST запросы.
if (!antibot_is_post()) return true;
else return antibot_check_time($limit);
}
function antibot_header()
{// Этот запрет пошлем боту.
header(ANTIBOT_HEADER);
echo '
Анти бот защита!!! нельзя так часто добавлять комментарии.
'; } session_start(); if (!antibot_check_post()) { // Если запрос "POST" и интервал меньше заданного, // то сохраним текущее время antibot_save_time(); // и пошлем робота куда подальше antibot_header(); exit(); } // Проверка пройдена, но все равно сохраним // текущее время - для следующей проверки. antibot_save_time();
Для данного скрипта я создаю отдельный файл antibot.php и подключаю его к обработчику в самом начале обработчика.
require_once('antibot.php');
Вот теперь можно спать спокойно )).
PHP скрипт чата
Итак, в этой статье мы поговорим о PHP скрипт чата. Основная масса сайтов, расположенных в просторах....
Php скрипт регистрации и авторизации
Давно хотелось обратить внимание пользователей на проблему регистрации и авторизации на сайте. Большая....
Php скрипт мониторинга игровых серверов
Найти готовый php скрипт мониторинга игровых серверов - задача не из простых. На сегодняшний....
Скрипт мониторинга серверов на php
В этой статье мы поговорим о том, что такое скрипт мониторинга серверов на php и для чего он нужен вообще....
PHP скрипт форума
Главным преимуществом PHP является его практичность и легкость. Благодаря использованию PHP ваш сайт станет....
Скрипт обратной связи php
Практически на всех сайтах, созданных на различных CMS, существует меню обратной связи. Данное меню очень....
Проверил на своих скриптах все отлично работает спасибо за скрипт.