Обход настроек htaccess

12
Р
На сайте с 10.10.2011
Offline
63
3094

Файл htaccess настроен таким образом, что посетителям без User-Agent выдаётся ошибка 403. Однако в логах заметил следующее, если за одну секунду без User-Agent сделать несколько обращений по одному адресу, то третья или пятая попытка становятся успешными (коды 200 или 302).

Если эти обращения выполнять, скажем, с интервалом в одну или несколько секунд, то все запросы блокируются (код 403).

Каким образом Apache пропускает обработку правил htaccess?

Разрешаю пользователям высокого мнения о себе и своих способностях минусовать мою репутацию )
[umka]
На сайте с 25.05.2008
Offline
456
#1

Следственный эксперимент пробовали ставить?

<?

for ($i=0; $i<10; $i++) {
echo file_get_contents('http://site.ru').'<br><br>';
}
?>
Лог в помощь!
Р
На сайте с 10.10.2011
Offline
63
#2

Странно, следственный эксперимент работоспособность подтвердил:

78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:12 +0400] "GET / HTTP/1.0" 403 - "-" "-"
78.x.x.x - - [10/Feb/2012:17:31:13 +0400] "GET / HTTP/1.0" 403 - "-" "-"

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

176.x.x.88 - - [10/Feb/2012:11:16:10 +0400] "GET /robots.txt HTTP/1.0" 200 171 "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:18 +0400] "GET /robots.txt HTTP/1.0" 403 - "-" "-"
176.x.x.88 - - [10/Feb/2012:11:16:11 +0400] "GET /robots.txt HTTP/1.0" 302 281 "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:18 +0400] "GET /robots.txt HTTP/1.0" 200 171 "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:19 +0400] "GET /robots.txt HTTP/1.0" 403 - "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:12 +0400] "GET /robots.txt HTTP/1.0" 200 171 "-" "-"
176.x.x.88 - - [10/Feb/2012:11:16:13 +0400] "GET /robots.txt HTTP/1.0" 403 - "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:14 +0400] "GET /robots.txt HTTP/1.0" 403 - "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:10 +0400] "GET /robots.txt HTTP/1.0" 302 281 "-" "-"
176.x.x.88 - - [10/Feb/2012:11:16:21 +0400] "GET /robots.txt HTTP/1.0" 200 171 "-" "-"
176.x.x.88 - - [10/Feb/2012:11:16:22 +0400] "GET /robots.txt HTTP/1.0" 302 281 "-" "-"
176.x.x.88 - - [10/Feb/2012:11:16:27 +0400] "GET /robots.txt HTTP/1.0" 403 - "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:25 +0400] "GET /robots.txt HTTP/1.0" 302 281 "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:22 +0400] "GET /robots.txt HTTP/1.0" 200 171 "-" "-"
176.x.x.89 - - [10/Feb/2012:11:16:22 +0400] "GET /robots.txt HTTP/1.0" 302 281 "-" "-"

Обратите внимание, два IP: 89 и 88.

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

[umka]
На сайте с 25.05.2008
Offline
456
#3

Значит, либо реферер иногда таки передаётся, либо "защита" работает не всегда :)

p.s. Если захотят свалить сайт, то поставят преподобного правдоподобного реферера юзерагента и свалят.

Р
На сайте с 10.10.2011
Offline
63
#4

А причём тут реферер? Вот строчка из .htaccess:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} ^$

RewriteRule .* - [F]

Всё же мне интересно, каким образом обходится защита?

[umka]
На сайте с 25.05.2008
Offline
456
#5
Романо:
А причём тут реферер? Вот строчка из .htaccess:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule .* - [F]

Всё же мне интересно, каким образом обходится защита?

А... помутнение у меня, конечно, юзер-агент :)

В лог юзер-агент пишется?

Р
На сайте с 10.10.2011
Offline
63
#6

В том то и дело, нет юзер-агента, см. вырезки из лога выше: "-"

[umka]
На сайте с 25.05.2008
Offline
456
#7
Романо:
В том то и дело, нет юзер-агента, см. вырезки из лога выше: "-"

Весьма странно.

Как вариант, можно попробовать вместо robots.txt подсунуть robots.php, и в нём логить все параметры запроса. Это даст более ясную картинку, как происходит "обход".

Может, в .htaccess есть ещё какие-то правила?

D
На сайте с 20.07.2011
Offline
38
#8
Романо:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule .* - [F]

А разве флаг L (last) не стоит ставить? =)

[umka]
На сайте с 25.05.2008
Offline
456
#9
dblokhin:
А разве флаг L (last) не стоит ставить? =)

Стоит, если есть другие правила. А так без разницы.

D
На сайте с 20.07.2011
Offline
38
#10

Я к тому и клоню..

12

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