O que esse código realmente faz?

2

Estou testando o plugin de segurança do iThemes para Wordpress. Adiciona o seguinte código:

        # 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; }
        }

O autor descreve-o como "Esta opção irá reduzir o spam de comentários negando comentários de bots sem referenciadores ou sem um user-agent identificado."

Eu não sou especialista em nginx.conf ... mas parece-me que TODAS as condições devem ser atendidas.

O que esse código realmente faz? O que significa $rule_0 = "3210" ?

Obrigado

    
por Pikk 15.04.2014 / 13:14

1 resposta

1

OBSERVAÇÃO: Aparentemente, isso não é php - este é meramente um arquivo nginx config, como é observado nos comentários abaixo.

Eu não sei php , mas isso parece bastante simples. É assim que eu acho que funciona:

valid_referers jetpack.wordpress.com/jetpack-comment/ *.mysite.com;
        set $rule_0 0;

Isso apenas define valores ok padrão. Observe aqui que estamos definindo $rule0_0 para ter um valor de 0 .

 if ($request_method ~ "POST"){ set $rule_0 1$rule_0; }

Se a solicitação http for BITWISE NOT , a palavra POST, set $rule_0 será igual a 10 .

Continua nesse padrão, adicionando 2 e 3 ao valor de $rule_0 if , há um referrer inválido ou um user_agent. inválido

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

Aqui if houve uma combinação de $request_method, $http_user_agent e referrer inválidos, então $rule_0 será igual a 3210 e o servidor php retornará 403: FORBIDDEN.

    
por 15.04.2014 / 13:39