Бурашников Роман Александрович

Блокируем спамеров и ботов взломщиков по IP при помощи .htaccess

По мере увеличения популярности моего сайта всё больше спамеров и ботов стали его посещать и пытаться сделать какую-нить гадость - регулярно писали в форму обратной связи, пытались оставить комментарии с множеством ссылок, а некоторые занимались подбором пароля, стабильно изо дня в день, в течении суток, каждые полчаса пробуя новый пароль. Причём какая-бы хитрая captcha ни была, всё равно найдутся боты которые её смогут обходить.

Появилась необходимость блокировать спамеров и вредоносных ботов по IP, тем более что вредоносные действия в основном были от одних и тех же IP.

Наиболее универсальный способ - править файл .htaccess в корне сайта на сервере. Если такого файла нет - создайте его.

На многих сайтах рекомендуют использовать следующий метод:

Order Allow,Deny

Allow from all

Deny from 94.125.184.50

Deny from 46.39.239.151

где 46.39.239.151 и 94.125.184.50 - IP адреса которые нужно заблокировать (на момент написания статьи - это действительно спамерские адреса).

Данным способом вы полностью заблокируете сайт для пользователей и ботов с этих IP.

Это конечно надёжно, но нельзя забывать что под одним IP адресом могут пользоваться несколько людей, есть даже целые города имеющие один IP адрес. Поэтому вы рискуете потерять часть посетителей.

Если это был бы единственный способ то можно было бы и пожертвовать этой малой частью посетителей, но, к счастью, есть и другой способ - блокировать запросы GET и/или POST с определённых IP адресов.

Немного о том, что такое GET и POST.

Они нужны для отправки запроса на сервер.

Метод GET

По умолчанию при запросе используется метод GET. Метод POST используется только тогда, когда это явно указано в запросе формы. Для CGI-программиста очень важно понимать, что при запросе методом GET данные формы передаются серверу вместе с URL. Web-серверы, поддерживающие CGI, копируют эти данные в переменную окружения с именем QUERY_STRING. После этого забота о получении данных из переменной окружения и их обработке возлагается на CGI-программу.

URL со строкой запроса выглядит так:

http://www.domen-name.com/login.pl?nick=maks&psw=parol

Знак ? отделяет строку запроса от собственно URL ресурса; nick и psw - переменные передаваемые серверу, maks и parol - их значения соответственно.

 

Метод POST

Метод POST используется тогда, когда это явно указано в атрибуте формы METHOD. В отличии от метода GET, POST помещает данные не в URL, а в тело запроса. Запрос POST во многом похож на ответ HTTP. Первая строка представляет собой стандартный запрос HTTP, в котором указан метод POST. В ней могут быть необходимые дополнительные заголовки, отделяемые от тела запроса пустой строкой.

Тело запроса при использовании метода POST передается программе как стандартный поток ввода.

В общем на большинстве сайтов метод GET используется для формирования и выдачи нужных страниц, т.е блокируя этот метод посетитель не сможет "передвигаться" по вашему сайту. А вот метод POST чаще всего используется для передачи данных в формах комментирования, вводе логина и пароля и прочих. Именно метод POST мы и будем блокировать.

Для этого всё в том же файле .htaccess, в корне сайта на сервере, прописываем следующее:

<Limit POST>
Order Allow,Deny
Deny from 46.39.239.151
Deny from 94.125.184.50
Allow from All
</Limit>

 Где 46.39.239.151 и 94.125.184.50 - IP адреса которые нужно заблокировать.

В результате если посетитель зайдёт с IP адреса 46.39.239.151 - он сможет нормально "передвигаться" по сайту, читать информацию, смотреть картинки с видео и т.д. Но как только он нажмёт кнопку "отправить" (ту которая находится в формах комментирования, обратной связи, авторизации и прочих) ему выдаст сообщение примерно такого вида:

Forbidden

You don't have permission to access /image/form.php on this server.

После всех правок файла .htaccess не забывайте перезагружать сервер Apache, в Ubuntu это делается следующей командой в терминале:

sudo service apache2 restart

Удачной Вам борьбы со спамерами.

VN:F [1.9.22_1171]
Рейтинг: +3 (голосов: 3), Понравилось: 3, Не понравилось: 0

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

2 комментария: Блокируем спамеров и ботов взломщиков по IP при помощи .htaccess

  • Ээээ, запаришься так лочить ботов, как же замечательный Akismet?

    VA:F [1.9.22_1171]
    Рейтинг: 0 (голосов: 0)
    • не пользовался им.
      1) не люблю то что требует дополнительной регистрации где-то
      2) судя по отзывам, он иногда ошибочно пихает комментарии в спам
      3) он отправляет комментарий в свою систему на свой сервак... а если этот сервак выключен по какой либо причине... не люблю такую зависимость от левых сервисов

      VN:F [1.9.22_1171]
      Рейтинг: -1 (голосов: 1)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Бурашников Роман АлександровичБурашников Роман Александрович
Лучшие записи
Рекомендую
  • Beget — лучший хостинг для сайтов в России
  • Umi — единственный нормальный конструктор сайтов
  • Топвизор — проверка позиций сайта в поисковых системах
  • Pozvonim.com — обратный звонок на сайт
  • Модульбанк — лучший банк для предпринимателей
  • Vto.pe — накрутка в соц.сетях
Яндекс Диск 1ГБ дополнительного места