Protegendo a pasta wp-admin - Objetivo? Importância?

4

Estou tentando entender como proteger um site do WordPress. Uma tarefa de segurança que eu não entendo é ... Qual é a importância de proteger a "pasta wp-admin"? Por exemplo, eu consideraria o limite de tentativas de login muito importante.

Qual é o propósito de proteger a pasta wp-admin? É para impedir que um hacker entre no seu painel do WordPress? Mas se você protege o wp-login.php, como um hacker pode entrar no painel de qualquer maneira?

<Files wp-login.php>
order deny,allow
deny from all
allow from xxx.xxx.x.x
</Files>

Se você usar o "Código A", também precisará ativar a funcionalidade AJAX do frontend e instalar o whitelist.css?

"Code A" - Limite o acesso à pasta wp-admin

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
</LIMIT>

.

Como o "Código A" se compara ao "Código B"? Você usaria um ou outro, ou ambos ao mesmo tempo?
.

"Código B" - Protegendo o diretório wp-admin

1   # enable basic authentication
2   AuthType Basic
3   # this text is displayed in the login dialog
4   AuthName “Restricted Area”
5   # The absolute path of the Apache htpasswd file. You should edit this
6   AuthUserFile /path/to/.htpasswd
7   # Allows any user in the .htpasswd file to access the directory
8   require valid-user




Allow front end Ajax functionality


Some WordPress plugins use Ajax functionality in WordPress.  
This means that such plugins might need access to the file admin-ajax.php  
To allow anonymous access to such file for the WordPress plugins to function,  
add the below to .htaccess  

1   <Files admin-ajax.php>
2       Order allow,deny
3       Allow from all
4       Satisfy any
5   </Files>



Update: /wp-admin/css/install.css is also sometimes needed on the frontend,  
you should whitelist that as well. Here's the necessary configuration 
to whitelist a file in a password protected location in lighttpd:


$HTTP["url"] =~ "^\/wp-admin\/.*" {
    $HTTP["url"] !~ "^\/wp-admin\/(admin-ajax\.php|css\/.*)" {
        auth.require = (
            "" => (
                "method" => "basic",
                "realm" => "Password protected area",
                "require" => "user=theuser",
            ),
        ),
    },
},
    
por leko 17.09.2014 / 03:06

1 resposta

4
  

Mas se você proteger o wp-login.php, como um hacker pode entrar no painel de qualquer maneira?

Um invasor pode tentar seqüestrar ou forjar um cookie de autenticação válido. Recentemente houve uma possível vulnerabilidade que tornou mais fácil forjar um cookie: CVE-2014-0166 Foi corrigido com a versão 3.7.3 / 3.8.3

  

Como o "Código A" se compara ao "Código B"? Você usaria um ou outro, ou ambos ao mesmo tempo?

Se você colocar whitelist wp-admin/admin-ajax.php (como em »Code B«), este script ainda pode atuar como ponto de contato para um invasor verificar sua falsificação de cookie e, com sucesso, como um ponto de entrada para manipular dados para cada ajax ação que não é garantida por um nonce adicional. Mas mesmo estes poderiam, teoricamente, ser adivinhados.

No entanto, se você não precisar da funcionalidade do AJAX para o público e tiver a possibilidade de colocar na lista de permissões todos os IPs de todas as suas contas, a proteção do diretório wp-admin/ reduziria possíveis vetores de ataque, como descrito acima.

Mas esse método não protege seu site contra ataques do tipo "homem do meio" ou ataques de computadores clientes infectados, porque eles passam na verificação da lista de permissões.

Por fim, forneço uma classificação pessoal para sua primeira consulta:

  

Qual a importância de proteger a "pasta wp-admin"?

Na minha opinião, é mais importante usar senhas seguras (talvez autenticação de dois fatores), chaves secretas seguras (sais em wp-config.php ) e, se possível, sempre uma conexão https quando você administra seu WordPress, desde o primeiro pedido on (solicitação https://…/wp-login.php ). Além disso, mantenha todos os componentes atualizados e remova os componentes não utilizados (Plugin / Theme) do servidor. Depois disso, você ainda pode considerar proteger o diretório wp-admin .

    
por David 19.09.2014 / 15:22