Nginx
這段程式碼的真正作用是什麼?
我正在測試 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"
意思?
*注意:*顯然這不是
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請求被設置為equal
BITWISE NOT
這個詞。POST,``$rule_0``10
它以該模式繼續,將 2 和 3 添加到
$rule_0 if
存在無效referrer
或無效的值user_agent.
if ($rule_0 = "3210") { return 403; }
這裡
if
出現了一個無效的組合,$request_method, $http_user_agent
然後referrer
將$rule_0
等於3210
,php伺服器將返回一個403: FORBIDDEN.