Pull to refresh

Comments 55

UFO landed and left these words here
В современном интернете — ЧПУ стандарт де-факто

На счет 444 — почему нагрузка меньше? Не все равно, что отдавать?
UFO landed and left these words here
UFO landed and left these words here
ну это всегда можно уточнить, стоит или нет.
Присоединяюсь к 444, сам хотел написать.
Грубо говоря, всё остальное — сервер оправдывается, почему он не можут дать конент (нет на сайте, ушло, запрещено).
А 444 — просто нет и всё. Т.е. сервер молчит, пользователя в игнор.
Скажите, а это правило разве не отключит вообще возможность передавать параметры GET-запросом? )
Можно же дописать только для определённой части сайта.
На момент атаки это меньше всего беспокоит. Когда боты попадут в лог и будут забанены — все вернется как и было.
Скажите, вот есть список ип ботов, как и чем лучше банить?
ipfw, пишете локальный скрипт на питоне или баше и вешаете его в крон, он будет парсить логи nginx`а и добавлять\удалять забаненные IP.
Зачем что-то писать, когда есть готовое? fail2ban к примеру.
UFO landed and left these words here
Так… это… фейсбук вечно пытается пристроить свой параметр, гуглоаналитика тоже.
В 6ом друпале иногда нужны урлы с вопросом, даже когда включены урлы.

Алсо ЧПУ = Числовое программное управление. Долго курил как может быть с ним сервер.
UFO landed and left these words here
GET'ы нужны даже при наличии ЧПУ. Например для пагинаторов или поиска.
«Пагинаторы» Без проблем работают в Wordpress к примеру, Не вижу проблемы. А вот поиск — согласен. Хотя если отрубать аргументы только при атаке, то оправдано, так как не до поиска будет, а лишь бы выстоять.
Как будто кто-то мешает вести атаки на адреса типа /foo/bar/13245
Ботам невыгодно делать такое, т.к. при настроящем foo.php/foo/bar часто может выскакивать ошибка 404.
и что? почему это не выгодно?
Если папки /foo/bar/123 не существует, то посетители — зомби будут просить 404 страницы, которые не жрут много ресурсов, а значит не создадут высокой нагрузки. Особенно если во время атаки правильно подкрутить nginx. Это не на всех сайтах, но на многих.
Сравните две ссылки:
habrahabr.ru/foo/bar/123123/
habrahabr.ru/?=foobar=123123
Какая более нагружает сервер — очевидно.
Все пришедшие с контекстной рекламы тоже попадут под нож…
?from=google
?from=dir
и т.п.
могут. а могут и не попадать, если нож настраивать с учётом особенностей сайта
nginx поддерживает регулярки, так вот, чтобы не нароком не забанить валидных юзеров, лучше использовать регулярку которая выявляет рандомный URL.
Это очень просто: /^[random]+$/

Случайная строка «oandonrm» соответствует.
«hello world» — не соответствует.
А можно ли выделить список аргументов, которые должны пропускаться?
Если урлы преобразованы через htaccess c i.php?h=h.jpg -> /i/hjpg
эти урлы тоже будут резаться этим правилом?
Да, т.к. nginx работает до apache.
Такие преобразования стоит выкинуть, и статику (/i/h.jpg) отдавать nginx-ом. Но если у Вас много денег и 2 теребайта оперативной памяти, то необязательно.
вопрос не в статике был. Со статикой и так все ясно.
Вот другой пример:
index.php?page=news&num=2 -> /news/2/
Насколько я понимаю, данный метод добавления мусора эффективен когда на сервере кэшируются страницы по ключу URL. Таким образом, кэш очень быстро забивается и сайт падает.
Самое полезное в этой статье я узнал из коментов. Про код 444 =)
а обрезать всех кто с аргументами, это такая временная мера дабы главная страница работала несмотря на ддос.
Не впервый раз на хабре число светится)
Когдато помогло остановить небольшую толпу китайцев.
Парсите access_log-и и в случае необходимости на стороне nginx выдавайте captcha
При хорошей атаке канал будет забит этими капчами.
а как же отслеживание кампаний googe_analytics, контекстная реклама итп?
на момент ддос глубоко пофигу…
а после? боты-то могут никуда и не деться…
тип ботнета не новый.
рассчет атакующих понятен — пробить кэши.
бьется вполне просто и прозрачно стандартными приемами с анализом поведения.
Для меня был новый
~30k ботов успешно забанены, атаку остановил
Про 444 поправил, реально помогает
UFO landed and left these words here
Какая-нибудь однодневка на ворпдрессе. А какой еще сайт может позволить себе обрубать аргументы?
UFO landed and left these words here
>ЧПУ сейчас является стандартом де-факто

microformats.org/wiki/rest/urls — обратите внимание на эмуляцию методов PUT и DELETE в браузерах

Конечно, всё зависит от ресурса, но в некоторых случаях важнее, чтобы отправленный и дошедший до сервера клиентский запрос был обработан, пускай и ответа на него не будет.
надо бы ещё отделять внутренние подзапросы. они часто с "?".
Используйте регекспы. У меня был подобный ддос, лечил правилом
##
if ($query_string ~ "\w+\d+=\d+") {
access_log /opt/www/temp/log/nigerz;
return 444; break;
}
##
количество запросов на секунду не спасет?

limit_req_zone $binary_remote_addr zone=one:20m rate=5r/s;

Ваше решение выглядит — как из пушки по воробьям по моему…
Sign up to leave a comment.

Articles