Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет sashnik ([info]sashnik)
@ 2014-06-06 12:20:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
drupal vs. bots (техническое)
Если ты, дорогой читатель, поставишь себе сайт на друпалке, на тебя немедля посыпятся ёбаные спамботы и сраные скрипткидисы.

Некоторые (не все) сначала тыкаются в "node/1" с реферером заглавной страницы (на заглавную страницу, естественно, не сходив) -- проверяют на друпалку.

Потом долбятся постами и гетами в "user/register" и "node/add" (которые прописаны Disallow в robots.txt) с очевидной целью нагадить.

Даже если сайт не предполагает саморегистрации юзеров и анонимного добавления страничек (т.е. боты огребают 403), друпалка, с ея йобаным php, жрёт под этот долбёж тонны ресурсов, а в логах появляются кучи мусора.

По ИП банить -- бесполезно, бо прут отовсюду. Надо прописать в .htaccess следующее (вдохновлено вот этим, но пофиксены корявые регекцпы и мутная логика.):

# If they are requesting resources, then they're probably not bots.
# set cookie
RewriteCond %{HTTP_COOKIE} !realbrowser
RewriteCond %{THE_REQUEST} system\.base\.css
RewriteRule .* - [L,co=realbrowser:getscookies:%{HTTP:Host}:86400]

# Check if this goes to register user or add content,
# If so, the human cookie must be set.
# If the dudes dont abide, they get a 403.
RewriteCond %{HTTP_COOKIE} !realbrowser
RewriteCond %{THE_REQUEST} (user\/register|node\/add)
RewriteRule .* - [F]

# drop the bot's first hit
RewriteCond %{HTTP_COOKIE} !realbrowser
RewriteCond %{REQUEST_URI} (node\/1|node)$
RewriteCond %{HTTP_REFERER} (site\.domain\.com\/)$
RewriteRule .* - [F]


В предпоследней строчке заменить "site\.domain\.com\/" на ваш уютный хостик.

Логика простая: реальный бровзер (не бот) при закачке любой страницы с сайта, также берёт базовый системный css. На скачивании системного css ему выдаётся печенька. Любой, кто без печеньки лезет на user/register или node/add, идёт на 403 ещё до того, как друпалка о нём услышит.

Профит, чо.