単一のIPアドレスのみがPOST要求を行い、NGINXの同じ理由で他のすべての人を拒否することを許可することは可能ですか?
回答を参照 これに関連していますが、そこで提供されるソリューションでは、サーバー全体にルールを適用する必要があります。同じサーバーでホストされている他のサイトに影響を与えることなく、仮想ホストレベルでこれを行う必要があります。
仮想ホストディレクトリの下に、.htaccessファイルを作成します。
次のようなルールを使用して、すべての投稿リクエストを拒否できます。
# deny all POST requests
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteRule .* - [F,L]
</IfModule>
次に、ホワイトリストを許可します。
# whitelist POST requests
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} !/contact.php [NC]
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteRule .* - [F,L]
</IfModule>
このサイト の詳細
編集:NGINXの場合、前例のルールを このオンラインツール で変換できます。例:
if ($request_method ~ "POST"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
return 403;
break;
}
if ($request_method ~ "POST"){
set $rule_0 1$rule_0;
}
if ($remote_addr !~ "127.0.0.1"){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
return 403;
break;
}