O wp-config.php concentra segredos do seu WordPress. Veja como blindar o arquivo no nível do app e do servidor, reduzir superfície de ataque e evitar vazamentos críticos.
Por que o wp-config.php exige atenção máxima
O arquivo contém credenciais do banco, chaves de autenticação e configurações sensíveis. Se cair em mãos erradas, o invasor assume o site, extrai dados e distribui malware. Proteger o wp-config.php reduz risco sistêmico e acelera respostas a incidentes.
1) Mova o wp-config.php para fora da raiz pública
O WordPress suporta carregar o arquivo um nível acima da pasta pública. Assim, mesmo se houver falha na configuração do servidor, o arquivo não será servido pela web.
# Exemplo de estrutura
/home/conta/wp-config.php <-- movido para fora da raiz
/home/conta/public_html/ <-- pasta pública do site
Teste em homologação antes de aplicar em produção.
2) Bloqueie acesso web ao arquivo
Apache (.htaccess)
<Files wp-config.php>
Require all denied
</Files>
Options -Indexes
Nginx
location ~* wp-config\.php { deny all; }
# Proteja arquivos ocultos (.env, .git, etc.)
location ~ /\.(?!well-known) { deny all; }
3) Permissões e propriedade
- Permissões recomendadas: 400 ou 440 no wp-config.php.
- Usuário correto como proprietário; grupo do webserver apenas com leitura quando necessário.
- Evite 777 em qualquer cenário.
# Linux
chmod 400 wp-config.php
chown usuario:web wp-config.php
# Opcional em servidor dedicado: tornar imutável
chattr +i wp-config.php # remover com: chattr -i
4) Chaves, SALTs e segredos fora do repositório
- Gere AUTH/SECURE/LOGGED_IN/NONCE KEYS & SALTS com ferramenta oficial e rotacione após incidentes.
- Evite versionar o wp-config.php. Use variáveis de ambiente sempre que possível e carregue via
getenv(). - Usuário do MySQL com privilégios mínimos (sem GRANT global).
5) Constantes que elevam a segurança
// Força HTTPS no admin
define('FORCE_SSL_ADMIN', true);
// Desativa editor de arquivos no painel
define('DISALLOW_FILE_EDIT', true);
// Atualizações automáticas de segurança (core minor)
define('WP_AUTO_UPDATE_CORE', 'minor');
// Higiene e performance
define('WP_POST_REVISIONS', 10);
define('AUTOSAVE_INTERVAL', 180);
// Debug sempre desativado em produção
define('WP_DEBUG', false);
// Cron do sistema em sites com tráfego
// define('DISABLE_WP_CRON', true);
Adapte as constantes às políticas do seu ambiente (produção x staging).
6) Evite exposição indireta
- Não deixe cópias como
wp-config.php.bak/.old/.zipno servidor. - Configure backups com exclusão de segredos em artefatos públicos.
- Garanta que respostas de erro PHP não sejam armazenadas em cache pela CDN.
7) Camadas complementares
- WAF/CDN com rate limit e bloqueio de padrões de ataque conhecidos.
- Bloqueio do
xmlrpc.phpquando não usado por apps/Jetpack. - 2FA para administradores e revisões periódicas de permissões.
- Backups versionados, testes de restauração e monitoramento de integridade.
Checklist rápido
- Mover o wp-config.php para fora da raiz pública.
- Negar acesso via Apache/Nginx e desativar listagem.
- Aplicar permissões 400/440 e proprietário/grupo corretos.
- Rotacionar chaves e SALTs em incidentes.
- Usar variáveis de ambiente e não versionar segredos.
- Somar WAF, 2FA, backups e monitoramento.
Hospedagem segura para WordPress
Na Server Express, entregamos WAF dedicado, modSecurity, firewall, SSL e snapshots para restaurar o site em minutos. Implementamos bloqueio de execução em /uploads, cabeçalhos de segurança e auditoria contínua.
ESCOLHER PLANOFALAR COM ESPECIALISTA
Perguntas Frequentes (FAQ)
Mover o wp-config.php pode quebrar o site?
Não. O WordPress busca o arquivo um nível acima por padrão. Teste antes em staging e valide permissões de leitura pelo webserver.
Quais permissões usar no wp-config.php?
Prefira 400 ou 440. Em ambientes onde o grupo precisa ler, 440. Evite 600/640 se o processo do webserver não for o proprietário.
Devo usar chattr +i (imutável)?
Em servidor dedicado, ajuda a impedir alterações indevidas. Use com cautela: é necessário remover o atributo para atualizar o arquivo.
Variáveis de ambiente melhoram a segurança?
Sim. Mantêm segredos fora do código e do versionamento. Carregue via getenv() e evite expor valores em logs.
Trocar o prefixo wp_ ajuda?
Ajuda contra bots genéricos, mas não substitui prepared statements, WAF e higiene de código. É apenas uma camada adicional.
Tags
- wp-config.php seguro
- Proteção WordPress
- Permissões 400 440
- Apache Nginx deny
- Auth keys e SALTs
- Variáveis de ambiente
- FORCE_SSL_ADMIN
- DISALLOW_FILE_EDIT
- Hardening WordPress
- WAF e snapshots
- Backups e restauração
- Hospedagem Server Express
- modSecurity firewall
- Bloqueio XML-RPC
- Segurança de aplicações









