Extensões erradas abrem portas para invasões. A escolha certa reduz risco, melhora estabilidade e simplifica a manutenção. Veja critérios práticos, sinais de alerta e códigos úteis. Nesse artigo você verá:
- Riscos comuns e por que acontecem
- Checklist rápido antes de instalar
- Como avaliar reputação e suporte
- Sinais de alerta e o que evitar
- Temas: riscos extras e boas práticas
- Snippets úteis de hardening
- Rotina segura de atualização
- WP‑CLI para auditoria e governança
- Checklist final de decisão
1) Riscos comuns e por que acontecem
- Backdoors e uploads sem validação. Atacantes usam funções frágeis e bypass de permissões.
- Dependências desatualizadas. Bibliotecas antigas trazem CVEs ignoradas.
- Plugins “nulled”. Código alterado injeta spam, cryptominer e acessos remotos.
- Temas pesados. Muito JS e page builders desatualizados quebram segurança e performance.
2) Checklist rápido antes de instalar
- Origem confiável: WordPress.org, repositórios do autor ou marketplaces auditados. Sem links suspeitos.
- Atualização recente: ideal < 90 dias. Comunidade ativa conta muito.
- Compatibilidade: versão WP e PHP suportadas. Leia o arquivo
readme.txt. - Avaliações reais: notas, issues e changelog transparentes. Evite produtos sem histórico.
- Política de segurança: canal para reportar falhas. Tempo de correção claro.
- Licença: GPL válida e chave de atualização legítima. Nada de cracks.
3) Como avaliar reputação e suporte
- Git/Changelog: commits frequentes e mensagens claras. Código vivo é mais seguro.
- Roadmap e SLA: prazos de correção e suporte ao cliente. Documentação consistente ajuda.
- Empresa/autor: histórico em outros projetos. Procure transparência e equipe acessível.
4) Sinais de alerta e o que evitar
- Funções obfuscadas:
eval(),base64_decode(),gzinflate()em arquivos estranhos. Isso é red flag. - Permissões exageradas: gravações em
/wp-content/fora de diretórios do plugin. Scripts no/uploads. - Chamadas remotas sem verificação:
wp_remote_get()sem sanitização. Falta denoncesem formulários. - Promessas “milagrosas”: SEO instantâneo e tráfego infinito. Muito bom para ser verdade.
5) Temas: riscos extras e boas práticas
- Evite tema que embute dezenas de plugins. Prefira tema leve e plugins separados.
- Child theme sempre. Protege customizações e facilita updates.
- Nada de funções de segurança em tema. Segurança fica em mu-plugin dedicado.
6) Snippets úteis de hardening
Use um plugin Must‑Use em /wp-content/mu-plugins/. Centralize políticas em um único arquivo.
6.1) Bloquear edição de arquivos pelo painel
// wp-config.php
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', false); // mantenha atualizações via painel, se necessário
6.2) Bloquear execução PHP no /uploads
// Crie /wp-content/uploads/.htaccess (Apache)
<FilesMatch "\.(php|php\.\d+)$">
Deny from all
</FilesMatch>
6.3) Permitir apenas uma lista de plugins aprovados (whitelist simples)
// /wp-content/mu-plugins/whitelist-plugins.php
<?php
if (!defined('ABSPATH')) exit;
add_filter('all_plugins', function($plugins){
$permitidos = [
'wordfence/wordfence.php',
'two-factor/two-factor.php',
'woocommerce/woocommerce.php',
'query-monitor/query-monitor.php'
];
foreach ($plugins as $slug => $dados) {
if (!in_array($slug, $permitidos, true)) {
unset($plugins[$slug]); // Oculta da lista de ativação
}
}
return $plugins;
});
6.4) Scanner rápido de funções perigosas ao instalar plugin/tema
// /wp-content/mu-plugins/scanner-post-install.php
<?php
if (!defined('ABSPATH')) exit;
function se_scan_arquivos($dir){
$perigosas = ['eval(', 'base64_decode', 'gzinflate', 'shell_exec', 'system('];
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
foreach ($it as $f) {
if ($f->isFile() && preg_match('/\.php(\.\d+)?$/', $f->getFilename())) {
$conteudo = @file_get_contents($f->getPathname());
if (!$conteudo) continue;
foreach ($perigosas as $bad) {
if (stripos($conteudo, $bad) !== false) {
error_log('ALERTA: função perigosa em ' . $f->getPathname());
}
}
}
}
}
add_action('upgrader_process_complete', function($upgrader, $options){
if (in_array($options['type'], ['plugin','theme'], true)) {
if (!empty($options['plugins'])) {
foreach ((array) $options['plugins'] as $slug) {
$path = WP_PLUGIN_DIR . '/' . dirname($slug);
if (is_dir($path)) se_scan_arquivos($path);
}
}
if (!empty($options['themes'])) {
foreach ((array) $options['themes'] as $slug) {
$path = get_theme_root() . '/' . $slug;
if (is_dir($path)) se_scan_arquivos($path);
}
}
}
}, 10, 2);
7) Rotina segura de atualização
- Staging antes de produção. Teste login, checkout e formulários críticos.
- Backup diário e snapshot antes de atualizar. Tenha rollback simples.
- Leia o changelog. Atualize primeiro segurança e depois features.
- Ative auto‑updates apenas para plugins maduros. Monitore logs e uptime.
8) WP‑CLI para auditoria e governança
# Listar plugins com status, versão e update
wp plugin list --fields=name,status,version,update
# Ver últimos updates realizados
wp plugin update --all --dry-run
# Ver temas e o ativo
wp theme list
# Remover plugins inativos (higiene)
wp plugin delete $(wp plugin list --status=inactive --field=name)
9) Checklist final de decisão
- Fonte confiável e licença válida.
- Ativo há < 90 dias e compatível com WP/PHP.
- Changelog claro e suporte responsivo.
- Sem obfuscação suspeita e sem permissões exageradas.
- Testado em staging com snapshot criado.
Perguntas Frequentes (FAQ)
Posso usar plugins “nulled” para economizar?
Não use. Eles inserem backdoors e removem atualizações. O barato sai caro. Quantos plugins são “seguros” em um site?
Quantidade não é o único fator. Qualidade, atualizações e performance importam mais. Temas multipurpose são um problema?
Podem ser. Muitos recursos elevam o risco e o peso. Prefira tema leve e modular. Como saber se um plugin é abandonado?
Sem updates por longos períodos e issues sem resposta indicam abandono. Evite usar. Preciso de antivírus no servidor?
Sim. Use varredura programada e WAF. Combine com snapshots e monitoramento. Vale a pena pagar por plugins premium?
Sim, se entregam suporte e segurança. Verifique reputação e políticas claras. O que fazer após instalar um plugin novo?
Teste funções principais e monitore logs. Faça backup e ative alertas. Posso misturar muitos page builders?
Evite. Conflitos e peso aumentam. Padronize em um stack enxuto.
Tags
WordPress, Segurança, Plugins, Temas, Hardening, WP‑CLI, WAF, Backup, Snapshot, Auditoria, Boas Práticas, Server Express









