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.