Какой способ блока ботов быстрей?

12
B
На сайте с 04.12.2008
Offline
69
1673

Добрый вечер.

Подскажите пожалуйста какой из нижеперечисленных способов работает быстрей?

(таких директив будет много, работаю на виртуальном хостинге)



RewriteCond %{HTTP_USER_AGENT} ^(black.?hole|blackwidow|blowfish|botalot|buddy|builtbottough|bullseye) [NC,OR]
RewriteRule .? - [F]

или



SetEnvIfNoCase ^User-Agent$ .*(black.?hole|blackwidow|blowfish|botalot|buddy|builtbottough|bullseye) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT

?

Спасибо.

blacks добавил 10.08.2009 в 15:42

Добавлю что вопрос задан из-за необходимости теоритического

снижения нагрузки при работе htaccess

KU
На сайте с 09.07.2009
Offline
61
#1

Быстрее способ добавления в конфиг, но раз хостинг виртуальный, то видимо он не подойдет.

Второй способ, который к слову не будет работать в принципе в данной реализации:), используют если нету модуля mod_rewrite, или если переменная полученая из условий mod_setenvif, нужна в дальнейнешем, для обработки в скриптах. В примере идет блокировка на базе этой переменной поэтому она не нужна в дальнейшем.

По вопросу производительности могу сказать что заметно разницы не будет.

Вообще надо смотреть на общий план, что значит много условий? Покажите хотябы штук 5.

но обычно пишут так:


RewriteCond %{HTTP_USER_AGENT} ^Bot1 [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [OR]
RewriteRule ^.* - [F,L]

так интуитивно понятно, на каждого бота по строке, и если что легко найти в дальнейшем.

B
На сайте с 04.12.2008
Offline
69
#2
Karl_ung:

Покажите хотябы штук 5.

но обычно пишут так:

так интуитивно понятно, на каждого бота по строке, и если что легко найти в дальнейшем.

Показать то могу... но их много. строк 500 поэтому и думаю как это под ужать.

В данном разделе форума есть топик про ботов так там тоже большая подборка.

Достаточно часто встречал сборки не

строка = бот

а

строка = боты собранные по теме.

Вот и думаю при 500 ботах и большом htaccess насколько увеличится нагрузка?

KU
На сайте с 09.07.2009
Offline
61
#3

В случае 500 тогда правильней было-бы конечно группироать, но не советую этого делать.

Вы не получите ни какого увеличения производительности, а даже наоборот. Проверка будет занимать время, причем весьма заметное, проверка будет производится для каждого клиента.

А и всех 500 ботов, к вам возможно прийдут максимум 10-20, да и то некоторые прийдут ненадолго и пропадут потом навсегда. Поэтому лучше, переодически просматривать логи, и банить только тех ботов которые ходят и нагружают сервер.

Большинство хостеров кстати банят по ИП при превышении нагрузки, так-что оно может и надо Вам вообще?

B
На сайте с 04.12.2008
Offline
69
#4
Karl_ung:
В случае 500 тогда правильней было-бы конечно группироать, но не советую этого делать.
Вы не получите ни какого увеличения производительности, а даже наоборот. Проверка будет занимать время, причем весьма заметное, проверка будет производится для каждого клиента.
А и всех 500 ботов, к вам возможно прийдут максимум 10-20, да и то некоторые прийдут ненадолго и пропадут потом навсегда. Поэтому лучше, переодически просматривать логи, и банить только тех ботов которые ходят и нагружают сервер.
Большинство хостеров кстати банят по ИП при превышении нагрузки, так-что оно может и надо Вам вообще?

Спасибо.

Полностью согласен что 500 много... но нужно до логического конца довести :) раз начал.

1. а где можно смотреть/увидеть "имя бота" заходившего на сайт?

2. следует ли мне поинтересоваться у хостинга если у них такой бан или нет?

(как я понимаю это еще защита от ddоs/dos атак, хостинг peterhost)

3. насколько сейчас узнал geoIP тоже тормозит работу сайтов...

- немного офтоп но не подскажете советом/ссылочкой как закрыться от кореи :) ?

Andreyka
На сайте с 19.02.2005
Offline
822
#5

Банить ботов лучше всего через ipset

Ну и конечно - банить на отдельном сервере

Не стоит плодить сущности без необходимости
B
На сайте с 04.12.2008
Offline
69
#6
Andreyka:
Банить ботов лучше всего через ipset
Ну и конечно - банить на отдельном сервере

Посмотрел что такое ipset - как я понял для этого нужен собственный сервер

и на виртуальном такое не сделать?

Andreyka
На сайте с 19.02.2005
Offline
822
#7

Если технология виртуализации дает возможность своего ядра - можно

B
На сайте с 04.12.2008
Offline
69
#8

Стоит ли банить ботов и людей при помощи определения языка клиента?

RewriteCond %{HTTP:Accept-Language} (aa|ab|af|am|ar|as|ay|az|ba|be|bg|bh|bi|bn|bo|br|ca|co|cs|cy|da|de|dz|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|ha|hi|hr|hu|hy|ia|ie|ik|in|is|it|iw|ja|ji|jw|ka|kk|kl|km|kn|ko|ks|ku|ky|la|ln|lo|lt|lv|mg|mi|mk|ml|mn|mo|mr|ms|mt|my|na|ne|nl|no|oc|om|or|pa|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sd|sg|sh|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|uk|ur|uz|vi|vo|wo|xh|yo|zh) [NC]

RewriteRule .* http://www.google.com [L]

(хочу оставить de, ru, en, jp, ua)

- на тарифе вирт хостинга нет geoIP

- плюс будет добвлен бан по имени клиента

- бан по IP мне пока труден для понимания - откуда IP брать 🙄

Спасибо

Andreyka
На сайте с 19.02.2005
Offline
822
#9

Я рекомендую банить по geo_ip - надежнее

B
На сайте с 04.12.2008
Offline
69
#10
Andreyka:
Я рекомендую банить по geo_ip - надежнее

Я бы с радостью но вот хостинг не позволяет - виртуальный

А брать сервер пока нет нужды :(

Интересно при таком Accept-Language бане могут быть проблемы?

- дополнительная сильная нагрузка на сервер?

- проблемы с посетителями?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий