Назад | Перейти на главную страницу

Как запретить POST для URL-адреса в nginx

Некоторые из URL-адресов с большим количеством SQL в моем приложении (скажем, /members) подвергаются атакам ботнетов. Поэтому я хотел бы запретить кому-либо публиковать сообщения по этому URL-адресу, а другим разрешить их ПОЛУЧАТЬ.

Я пробовал сделать такой вложенный цикл:

if ($request_uri ~ .*members^)  {

   if ($request_method = POST ) {
         return 444;
     }
}

Но nginx этого не принимает.

Я тоже пробовал эту директиву

location ~ "^/members$" {
    if ($request_method ~ ^(POST)$ ) {       
        return 444;
    }
}

но этот тоже отрицает ПОЛУЧЕНИЕ.

Так что невежественный и ценю вашу помощь.

Попробуй это:

location ^~ /members {
  limit_except GET {
    deny  all;
  }
}

Отклонить все запросы, кроме GET.