このコードは実際に何をしますか?

このコードは実際に何をしますか?

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_010

$rule_0 ifreferrerこのパターンが続行され、無効または無効な値がある場合は、2と3を追加します。user_agent.

if ($rule_0 = "3210") { return 403; }

ここでif無効な組み合わせ$request_method, $http_user_agentreferrer以下は$rule_0同じで、3210PHPサーバーは次を返します。403: FORBIDDEN.

関連情報