WP Manifestindependent plugin directory
manifest / security / wp-custom-security

WP Custom Security

Plugin Wordpress com medidas de segurança personalizadas.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ifrs/wp-custom-security/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Plugin de segurança personalizado para WordPress implementado como Must-Use Plugin (MU-Plugin).

O que é um Must-Use Plugin?

Must-Use Plugins são plugins especiais do WordPress que:

  • São carregados automaticamente pelo WordPress
  • Não podem ser desativados através do painel administrativo
  • Não aparecem na lista de plugins regulares
  • São executados antes dos plugins convencionais
  • Ideais para funcionalidades críticas de segurança

Instalação

  1. Copie o arquivo wp-custom-security.php para a pasta:

    wp-content/mu-plugins/wp-custom-security.php
  2. Se a pasta mu-plugins não existir, crie-a dentro de wp-content/

  3. O plugin será ativado automaticamente (não requer ativação manual)

  4. Para verificar se está ativo, acesse: Painel Admin → Plugins → Must-Use

Desinstalação

Para desativar o plugin, simplesmente remova o arquivo da pasta mu-plugins.

Medidas de Segurança Implementadas

🔒 Proteção de Informações

  • Ocultar versão do WordPress: Remove informações de versão do header e meta tags
  • Remover headers do servidor: Oculta X-Powered-By e Server headers
  • Remover informações desnecessárias: Remove RSD link, WLW manifest, shortlink, REST API discovery e oEmbed links do head
  • Query strings seguras: Remove ?ver= e adiciona timestamp de arquivo (?v=timestamp) para manter cache funcionando

🛡️ Headers de Segurança HTTP

  • X-Frame-Options: Previne clickjacking
  • X-Content-Type-Options: Previne MIME sniffing
  • X-XSS-Protection: Proteção contra XSS
  • Referrer-Policy: Controla informações de referrer
  • Permissions-Policy: Controla acesso a APIs sensíveis (geolocalização, microfone, câmera)
  • HSTS (Strict-Transport-Security): Força HTTPS quando disponível
  • Content-Security-Policy: Policy básica de frame-ancestors

👤 Proteção contra Enumeração de Usuários

  • Bloqueia acesso a /?author=X para usuários não logados
  • Mensagens de erro genéricas no login
  • Restringe endpoints de usuários na REST API (/wp/v2/users) apenas para usuários autenticados

🚫 Desabilitação de Recursos Desnecessários

  • XML-RPC completamente desabilitado: Previne ataques DDoS e brute force
  • Pingbacks/Trackbacks desabilitados: Remove vetor de ataque DDoS
  • Application Passwords desabilitados: Remove funcionalidade de senhas de aplicativo (WP 5.6+)
  • jQuery Migrate removido: Reduz superfície de ataque (apenas no frontend)
  • Scripts de emoji removidos: Remove código desnecessário

⚡ Rate Limiting

  • Limite de 100 requisições por minuto na REST API para usuários não autenticados
  • Proteção contra abuso de API

🍯 Proteção Adicional de Login

  • Honeypot field: Campo invisível no formulário de login que detecta e bloqueia bots automaticamente
  • Não afeta usuários legítimos

📝 Logging de Segurança

  • Registra tentativas de login falhadas com timestamp, username e IP
  • Registra detecções de bot via honeypot
  • Logs salvos no error_log padrão do PHP

Compatibilidade

  • WordPress: 5.6 ou superior
  • PHP: 7.4 ou superior
  • Compatível com: Multisite (Network: true)
  • Não interfere com: Temas, plugins regulares, cache do navegador

Características Técnicas

  • Implementado usando padrão Singleton
  • Usa hooks e filtros nativos do WordPress
  • Não quebra funcionalidades do WordPress
  • Performance otimizada: Usa transients nativos do WP para cache
  • Seguro por padrão: Todas as medidas são não-intrusivas

Licença

Esse código é distribuído sob a licença GNU GPL 3.0.