这段代码的真正作用是什么?

这段代码的真正作用是什么?

我正在测试 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 NOTPOST,设置$rule_0为 equal 10

$rule_0 if它继续以这种模式,将 2 和 3 添加到存在无效referrer或无效的值user_agent.

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

这里if出现了invalid$request_method, $http_user_agentreferrerthen的组合$rule_0将等于3210并且php服务器将返回一个403: FORBIDDEN.

相关内容