Checklist de reforço do WordPress com correções para copiar e colar
Atualizações são o mais importante. Depois delas, estas pequenas mudanças fecham as portas que os atacantes tentam primeiro.
O código e a configuração ficam em inglês.
1. Mantenha tudo atualizado
Ative as atualizações automáticas de plugins e temas (Plugins → Ativar atualizações automáticas). Remova o que você não usa: plugins desativados também podem ser explorados.
2. Desative o editor de arquivos embutido
Adicione ao wp-config.php, acima de /* That’s all, stop editing! */:
define( 'DISALLOW_FILE_EDIT', true );3. Bloqueie o XML-RPC (se você não usa)
O Jetpack e alguns apps móveis usam XML-RPC. Se não for o seu caso, bloqueie no servidor:
<Files "xmlrpc.php">
Require all denied
</Files>location = /xmlrpc.php { deny all; }4. Pare de expor nomes de usuário
Esconda a lista de usuários da API REST de visitantes não logados (como plugin must-use em wp-content/mu-plugins/):
<?php
add_filter( 'rest_endpoints', function ( $endpoints ) {
if ( ! is_user_logged_in() ) {
unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
} );Verifique também se os arquivos de autor (/?author=1) não revelam nomes de login. Configure o “Exibir nome publicamente como” de cada usuário com algo diferente do login.
5. Nada de PHP em uploads
A pasta uploads só deve guardar mídia. Coloque isto em wp-content/uploads/.htaccess:
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ { deny all; }6. Proteja o wp-config.php e os logins
- Deixe o
wp-config.phplegível só pelo dono (permissões600ou640, conforme a sua hospedagem). - Nunca deixe cópias
wp-config.php.bak,.oldou.zipna raiz web. - Use autenticação de dois fatores e limite as tentativas de login das contas de administrador.
- Mantenha o
WP_DEBUG_DISPLAYdesligado em produção, para que os erros nunca apareçam na tela.