Re: Вопрос про merge_slashes

denis denis at webmaster.spb.ru
Fri Apr 25 12:04:16 UTC 2014


25.04.2014 15:37, Михаил Монашёв пишет:
> Здравствуйте.
>
> В доке http://nginx.org/ru/docs/http/ngx_http_core_module.html#merge_slashes
> написано "Однако из соображений безопасности лучше избегать отключения преобразования."
>
> Что именно небезопасного может произойти при    merge_slashes off;
>
> Поясню проблему. Сайт сильно спамят. Я настроил правило, которое
> смотрит лог и если происходит более Х обращений вроде
> POST /p/add_topic.cgi HTTP/1.1
> то ip считается подозрительным. Спамер это просёк и сейчас шлёт
> запросы вот такие:
> POST //p/add_topic.cgi HTTP/1.1"
>
> Я могу свою парсилку логов поправить, но и с директивой хотелось бы
> понять проблему.
>
#to http
map $binary_remote_addr $is_post {
         POST $binary_remote_addr;
}
limit_req_zone $is_post zone=post:1m rate=12r/m;

         location / {
                 limit_req zone=post burst=1 nodelay;
                 limit_req zone=limitReqsPerIP burst=8 nodelay;
...

И ловим в еррлогах 503, после чего уже банним.
Вариант 2

         location /login/ {
                if ($request_method = POST) {
                        #limit_req zone=pmk-login; #burst=1;
                        return 402;
                }

                error_page 402 @post;

         location @post {
                 access_log post.log;
                 limit_req zone=pmk-login; #burst=1;

                 proxy_pass http://BE;
                 proxy_redirect off;
                 proxy_next_upstream error timeout invalid_header 
http_500 http_502 http_503;
         }

Вариант 3
location ~* add_topic.cgi$ {
и тоже лимиты, if на POST итд



Подробная информация о списке рассылки nginx-ru