Бан в htaccess по UserAgent и IP - как?

LL
На сайте с 27.09.2007
Offline
39
6707

Задача:

1) забанить всё, что обращается к сайту с юзерагентами, сожержащими определенные подстроки

2) забанить всё, что обращается к сайту с определенных IP

для этих двух целей собралось у меня следующее содержимое файла .htaccess:


Order allow,deny
allow from all
deny 1.1.1.1, 2.2.2.2, 3.3.3.3

SetEnvIfNoCase User-Agent "^php" bot
SetEnvIfNoCase User-Agent "^Parser" bot
SetEnvIfNoCase User-Agent "^Java" bot

<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bot
</Limit>

- по мотивам разных источников (http://mishamx.habrahabr.ru/blog/36326.html - основное)

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

И еще: будут ли таким образом баниться юзерагенты, содержащие подстроки ("parser", "php", "java"), а не только начинающиеся с них, и чувствительно ли оно к регистру?

Angelo
На сайте с 01.01.2007
Offline
125
#1
la-la-la:
2) забанить всё, что обращается к сайту с определенных IP

Онлайн сервис для этого.

LL
На сайте с 27.09.2007
Offline
39
#2

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

наверное, оно выглядит так :) :


SetEnvIfNoCase User-Agent "^php" bot
SetEnvIfNoCase User-Agent "^Parser" bot
SetEnvIfNoCase User-Agent "^Java" bot

<Limit GET POST>
order allow,deny
deny from 1.1.1.1
deny from 2.2.2.2
deny from 3.3.3.3
deny from env=bot
allow from all
</Limit>
[Удален]
#3

curl_setopt($ch,CURLOPT_HEADERS,array("User-Agent: no bot Yahohoho!"));

и никакого бана. поверьте, это не защита.

защита = на пхп считать интервалы и собирать статистику обращений, если допустим 500 обращений за пару минут, то в бан :)

alexf2000
На сайте с 15.10.2004
Offline
79
#4

Считать интервалы и банить также можно из iptables.

Самый интересный SEO-блог (http://alexf.name)
LL
На сайте с 27.09.2007
Offline
39
#5

bearman, это знаю, но все равно куча кала ломится с одних IP и со всякими юзерагентами типа "Parser бла-бла"

[Удален]
#6

:)

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

V
На сайте с 25.07.2006
Offline
128
#7
la-la-la:
Задача:
1) забанить всё, что обращается к сайту с юзерагентами, сожержащими определенные подстроки
....
SetEnvIfNoCase User-Agent "^php" bot
....
И еще: будут ли таким образом баниться юзерагенты, содержащие подстроки ("parser", "php", "java"), а не только начинающиеся с них, и чувствительно ли оно к регистру?

Значение регекспа "^php" означает "строка начинается с 'php.....'".

Чтобы банить юзерагентов, содержащих _подстроки_, нужно писать просто:

SetEnvIfNoCase User-Agent "php" bot

Это будет означать именно то, что требуется - User-Agent содержит подстроку "php"

Приватный linux-администратор

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