Запрет в htaccess на доступ к POST /edit

A
На сайте с 03.07.2013
Offline
24
#131
Antonio1982:
Я решил вопрос таким методом в NGINX, дополнительно отключив все логи для обработки такого запроса

location ~* /edit {
deny all;
access_log off;
log_not_found off;
error_log /dev/null;
}

По моему мнению самое правильное решение, если вы не хотите потерять своих пользователей. Только я закрыл запросы, которые заканчиваются на /edit или /edit/, т.к. есть страницы в админке типо /editor и они должны работать. Код получился такой:

location ~* /edit/?$ {

deny all;
access_log off;
log_not_found off;
error_log /dev/null;
}

Просмотрев логи видно, что post-edit идёт от реальных пользователей, которые приходят к вам на сайт. Т.е. вначале с этих IP идут нормальные запросы, переходы идут из поисковиков. Но похоже их машины заражены и дальше к нормальным запросам пользователей добавляются запросы post-edit. Чем мощнее комп и соединение пользователя, тем больше запросов. Наблюдал и по 10-15 запросов в секунду.

Борюсь с этим *** post-edit уже больше полугода. Делал анализатор, который при появлении такого запроса скидывал новый IP на почту. Дальше вручную (не хотелось автоматом случайно забанить роботов ПС) банил по IP через iptables. Так в течение месяца. Эффекта никакого этого не дало, постоянно появляются новые IP. Для мелких ресурсов с постоянной аудиторией может и помогло бы, но для 15к уников в день не помогло, каждый день новые IP. Напр. за вчера:

213.242.237.253

46.252.113.133
88.147.141.204
77.67.220.216
5.100.208.79
31.44.5.108
78.37.57.163
95.59.200.134
46.159.250.213
178.154.44.229
91.225.49.6
78.85.195.77
109.87.123.155
95.111.227.161
188.162.36.96
83.149.34.177
5.39.219.26
95.188.209.166
77.67.242.121
31.162.223.126

После перехода на новый сервер нагрузка от этих post-edit'ов особо нет. Но их наличие всё равно напрягает. В месяц они успевают делать под 1млн. запросов. Кроме post-edit ещё идёт post-спам на обычные страницы без /edit на конце. Тут походу надо копать как блокировать post-запросы со страниц, на которых нет форм обратной связи и прочего. Если у кого-нибудь есть решение и для этого - welcome.

[Удален]
#132

Угу, сегодня ночью тоже приходил кто-то с мощной машиной и толстым каналом. 15 запросов в секунду, даже при заблокированном ip на уровне апача создают нехилую нагрузку. Это, конечно, надо фильтровать уже на уровне фаервола. Но на виртуальном хостинге такой возможности нет.

Конструкция

$ tail -n 100 access.log | grep "POST" | grep " 200 " | cut -d" " -f2 |sort|uniq -c |awk '{if($1>3){printf("Deny from %s\n",$2);}}' >> /path/to/.htaccess

по факту работает вполне неплохо.

Специально завел аккаунт тестовый на хостинге, там скрипт запускается раз в минуту, берет 100 последних записей из 8мегабайтного лога и каждый раз находит что сортировать и записывать в .htaccess. Нагрузка - 0CP, из 50 даваемых хостером. :)

0.01CP - это когда я лазил по FTP и SSH и проводил какие-то еще эксперименты.

Так что у меня оно запускается раз в 3 минуты, смотрит всего 20 последних строчек лога и отлично всех блокирует.

Поскольку сайт на WordPress, мне еще пришлось добавить в конструкцию

grep -v "wp-admin", а то он и меня банил, когда я в админке чего-то делал. :)

Админка все равно закрыта через htpasswd, там пофиг, когда кто-то ломится с ПОСТами. :)

A1
На сайте с 09.04.2011
Offline
35
#133

От Post-edit спасает такое

# 403 for flooders

RewriteCond %{REQUEST_METHOD} =POST

RewriteRule .*/edit$ - [L,F]

А вот от Post спама лекарства пока не нашел. Постоянные перегрузки на сервер, а отрубить post для всего сайта - не выход. Комменты, авторизация в админке и пр... Неужели нет выхода?

T3
На сайте с 16.02.2007
Offline
132
#134
BrimStone:
А нет ли тут умельцев, способных написать скрипт, который раз в минуту делал бы "tail -n 500 лог.файл" и находя там больше 3 POST-запросов с одного ip добавлял его в .htaccess? :)

http://www.fail2ban.org/

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

Отключил логирование этого мусора, пытаюсь узнать у пользователя, какое расширение или приложение флудит (браузер Chrome).

Рекомендую VPS за $5/месяц (https://m.do.co/c/e366f023194b). Готовый сервер разворачивается за 2 минуты.
[Удален]
#135
T-34:
http://www.fail2ban.org/
Однако не советую банить IP за такие запросы, ко мне вот обратился пользователь с жалобой, что не может залогиниться на сайте, т.к. он становится недоступен... Оказалось, что fail2ban банил его и других таких же бедолаг за кучу этих мусорных запросов, о которых юзеры, естественно, ни сном ни духом...
Отключил логирование этого мусора, пытаюсь узнать у пользователя, какое расширение или приложение флудит (браузер Chrome).

Спасибо, конечно, но уже все написано и даже в этой ветке выложено :)

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

А fail2ban на виртуальном хостинге вообще не факт, что удастся запустить.

KV
На сайте с 21.12.2011
Offline
68
#136

Не совсем по теме, но похожее.

С определенного айпи идет такое:

GET /favicon.ico HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36 OPR/16.0.1196.80

Переодичность 1раз в 6 секунд. Что это может быть? Забанить сложно так как айпи разные от одного провайдера, динамические.

Это типо Ддос такой или что-то другое? И как с этим бороться?

Может кто-то уже сталкивался.

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