WordPress用のiThemesセキュリティプラグインをテストしています。次のコードを追加します。
# Rules to help reduce spam
location /wp-comments-post.php {
valid_referers jetpack.wordpress.com/jetpack-comment/ *.mysite.com;
set $rule_0 0;
if ($request_method ~ "POST"){ set $rule_0 1$rule_0; }
if ($invalid_referer) { set $rule_0 2$rule_0; }
if ($http_user_agent ~ "^$"){ set $rule_0 3$rule_0; }
if ($rule_0 = "3210") { return 403; }
}
著者はこれを「このオプションはリファラーや認識できないユーザーエージェントがないボットのコメントを拒否してコメントスパムを減らす」と説明します。
私の考えでは、すべての条件を満たす必要があると思います。
このコードは実際に何をしますか?どういう意味ですか$rule_0 = "3210"
?
答え1
メモ:明らかにそうではありません。以下の説明で説明するように、php
これは設定ファイルにすぎません。nginx
よくわかりませんが、php
簡単なようです。私はこれが次のように動作すると思います。
valid_referers jetpack.wordpress.com/jetpack-comment/ *.mysite.com;
set $rule_0 0;
これは単にデフォルトのok値を設定します。ここでは$rule0_0
値をとして定義します0
。
if ($request_method ~ "POST"){ set $rule_0 1$rule_0; }
httpリクエストBITWISE NOT
ワードが等しいにPOST,
設定されている場合。$rule_0
10
$rule_0 if
referrer
このパターンが続行され、無効または無効な値がある場合は、2と3を追加します。user_agent.
if ($rule_0 = "3210") { return 403; }
ここでif
無効な組み合わせ$request_method, $http_user_agent
とreferrer
以下は$rule_0
同じで、3210
PHPサーバーは次を返します。403: FORBIDDEN.