Защищаем сайт от автоматического спама

govnoproger.ru > интернет > Защищаем сайт от автоматического спама

К примеру у вас есть сайт, форум, блог на wordpress, да не важно что.

Его заспамляют боты. Вот вам все способы защиты, которые известны мне.

Важно помнить что от ручного-браузерного спама защиты нету.

Начнём с самых лёгких способов.
Неважно какой у вас движок: drupal, wordpress, DLE. Эти способы работают со всеми, важно лишь знать некоторые моменты вашего движка. В целом всё это очень просто и справится с этим даже самый неопытный вебмастер.

1) htaccess
Первый способ это htaccess файл. Забавно, но это сократит количество спамных обращений.
Давайте рассмотрим мою вставку htaccess. Я взял её давно с интернета и немного изменил:

SetEnvIfNoCase user-Agent ^FrontPage bad_bot
SetEnvIfNoCase user-Agent ^Java.* bad_bot
SetEnvIfNoCase user-Agent ^Microsoft.URL bad_bot
SetEnvIfNoCase user-Agent ^MSFrontPage bad_bot
SetEnvIfNoCase user-Agent ^Offline.Explorer bad_bot
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit bad_bot
SetEnvIfNoCase user-Agent ^Zeus bad_bot 
SetEnvIfNoCase user-Agent ^$ bad_bot 
SetEnvIfNoCase user-Agent ^Python-urllib/* bad_bot 

Order Allow,Deny
Allow from all
Deny from env=bad_bot
#также сюда можно помещать диапазоны ip адресов с которых спамят.

Как видите защита работает по юзер-агентам. Мы просто не даём некоторым дефолтным юзер-агентам обращаться к сайту. Они даже на него зайти не смогут.

У этого способа есть недостаток. Я наступил на эти грабли когда регал сайт в чёрных каталогах, которые проверяли обратную ссылку.

Этот способ используется на этом сайте.

2) Установка текстовой или логической капчи.
Этот способ используется на этом сайте.

3) Переименование скрипта, добавляющего комментарии.
Имеется в виду скрипт на который идут POST запросы. Поможет 100%. Частично но поможет. Связано это с тем, что спамилки заточены под определённые движки.
Этот способ используется на этом сайте.

4) Изменение с помощью javascript.
Как я и говорил многие спамилки заточены под движки, но не все. Редко встречаются которые парсят поля.
Итак у вас есть поле input.

 <form name="test" method="post" action="some.php">
   <input name="ttt" type="text" size="40">
 </form>

Обратите внимание some.php — это ложный адрес. ttt — это ложное имя поля.
Пишите javascript который при выполнении изменит ложные параметры на реальные.
Таким способом вы на 100% защищены от спамилок написанных на php. Php не умеет интерпретировать javascript. Также вы защищены и от многих старых спамилок.

Рекомендую:

26.7.2011 | последняя редакция: 17.05.2012 |