Отсеять посетителей пришедших с другого сайта — Спаму НЕТ! [ PHP ]

Наш сайт попал в дохлую спамерскую организацию. Почему дохлую? потому что нечего ломать нас…
Но сейчас не об этом..

Стали спамить в коменты. Причём явно роботы. Причём явно не сильно умные.
Надоело те самые коменты удалять..

Обезопасимся.

Суть метода.
Если человек отправляет комент, то он должен был вписать его в форму на сайте. Если он это сделал, то он пришёл на странцу добавления с нашего сайта. Т.е. нам нужно отсеять часть «людей» которые обращаются к скрипту на прямую..

Делается это на php в два счёта.

В глобальной переменной server есть поле с указанием страници с которой пришёл пользователь.
Первым делом отсеем людей которые вообще без ссылки:

if (!isset($_SERVER[‘HTTP_REFERER’])) {

exit(«some error..»);

}

Мы просто прекращаем выполнять скрипт при отсутствии нужного поля.

Если же в этом поле чтото есть, нужно проверить наш ли это сайт.
Разберём строку со ссылкой. Нам ведь нужен только домен, без остальной требухи.

$url = parse_url($_SERVER[‘HTTP_REFERER’]);

Кроме того в тойже глобальной переменной сервера есть поле с указанием его имени т.е. нашего домена.
Проверка:

if ($url[‘host’] != $_SERVER[‘SERVER_NAME’])

exit(«<br>not how2 domen<br>»);

Вот и всё. Даже если у вас несколько доменов будет выбран нужный. Нет необходимости перечислять в условии их все..
За сим всё.

 

Источник: malimar.ru

Читайте также  Simple LightDM Manager изменит фон LightDM
Technology United