web-dev-qa-db-ja.com

nginxのURLへのPOSTを拒否する方法

私のアプリでSQLを多用するURLの一部(/members)ボットネットによる攻撃を受けています。だから私は他の人がそれらを取得することを許可しながら、誰もがこれらのURLに投稿することを無効にしたいと思います。

私はこのようにネストされたループを作ろうとしました:

if ($request_uri ~ .*members^)  {

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

しかし、nginxはこれを受け入れません。

私もこのディレクティブを試しました

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

しかし、これもGETを否定します。

だから無知のままにして、あなたの助けに感謝します。

3
Jand

これを試して:

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

GET以外のすべてのリクエストを拒否します。

8
Glueon