12 марта 2011 г.

Баним адреса спамеров в .htaccess

   В связи с большим потоком спама на сайты у меня возникла потребность блокировки отдельных адресов, с которых чаще всего приходят бесполезные сообщения. Ставить каптчу не очень хочется, так как для пользователей она точно не является удобством, поэтому решил заблокировать адреса спамеров посредством файла .htaccess.

   Немного путешествий по поисковым системам и нашёл первый ответ, в котором рассказывалось о всего лишь трёх строчках:
order allow,deny
allow from all
deny from 192.168.44.201
   Поскольку любителей спама на сайтах бывает очень много и одним IP-адресом они явно не ограничиваются, пришлось поискать ещё и информацию о том, как заблокировать сразу несколько адресов. Понятное дело, что можно было попробовать прописать адреса через запятую, но лучше сначала изучить теорию, а не экспериментировать... Используя поисковую систему, нашёл примеры использования строчки "deny from". Собственно, заблокировать несколько IP-адресов посредством файла .htaccess можно так:
order allow,deny
allow from all
deny from 192.168.44.201
deny from 224.39.163.12
deny from 172.16.7.92
   Хоть во многих примерах строка "allow from all" и пишется в самом конце данной части содержимого файла, я не стал экспериментировать и вписал её на второе место. Исходя из логических соображений, нужно сначала разрешить всем посетителям заходить на сайт, а лишь потом блокировать определённые адреса, так как блокировка, а потом разрешение просмотра всем наводит на мысли, что первое правило просто не будет учитываться.

   Забанить диапазон адресов с помощью файла .htaccess тоже можно. Диапазон адресов должен иметь вид 192.168.44.0/24, но никак не 192.168.44.1-192.168.44.255. Второй вид адресов просто не будет учитываться и, как следствие, с этих адресов можно будет зайти на сайт.
order allow,deny
allow from all
deny from 192.168.43.0/24
deny from 192.168.44.0/24
deny from 192.168.45.0/24
   Собственно, на этом всё. Может быть, кому-то, кто с презрением смотрит на каптчу, эта информация пригодится.

2 комментария:

  1. На wordpress всё гораздо проще, можно заблокировать спамеров через админ панель - заходите в параметры, после заходим в обсуждения и там есть правка - заносим адреса и всё - спама нет :)

    ОтветитьУдалить
  2. Да, некоторые "движки" действительно имеют много полезных функций, но вот в большинстве компонентов Joomla! (и не только её, наверное) об удобной блокировке спамеров остаётся только мечтать...
    Блокировка адресов в самом "движке", кстати, не уменьшает нагрузку от роботов на хостинг, а блокировка файлом .htaccess, по словам службы поддержки моего хостинг-провайдера, позволяет значительно сократить эту нагрузку. На деле пока не удалось это проверить, а ресурсы хостинга никогда не будут лишними :)

    ОтветитьУдалить