WordPress é a plataforma CMS (sistema de gerenciamento de conteúdo) mais utilizada do mundo, com isso, é adotada por empresas de todos os tamanhos para todo tipo de uso, desde um blog pessoal a um portal de notícias completo, passando por sites institucionais, sistemas de licenciamento, de agenda, de tickets, enfim, as possibilidades são infinitas.
Por esse motivo, essa também uma das plataformas mais visadas em busca de falhas, tornando ela uma vítima dos ataques de força bruta e sendo exploradas por vulnerabilidades de plugins que o administrador tenha instalado.
Para evitar esse tipo de problema, uma boa forma de proteção, além dos plugins clássicos sugeridos em outro artigo e a infraestrutura de borda, são as proteções implementadas no arquivo .htaccess (para servidores web Apache HTTP Server, por exemplo) para direcionar as requisições feitas ao servidor.
O código no link a seguir é uma sugestão de implementação para Apache que, em ordem, bloqueia solicitações ao arquivo xmlrpc.php, impede requisições POST feitos diretamente ao wp-login.php sem passar pela página de login, bloqueia solicitações de determinados agentes ao wp-login.php.
GitHub: https://github.com/ivancarlosti/WordPress-Bruteforce-Protection/blob/main/.htaccess
Note que a linha 11 deve ser alterada para seu domínio.
Caso você utilize algum serviço de pacote do WordPress, como o Bitnami, você precisará verificar qual a lógica de funcionamento do seu .htaccess. No caso do Bitnami, usualmente o .htaccess do WordPress fica localizado em /opt/bitnami/apache/conf/vhosts/htaccess/wordpress-htaccess.conf, e as linhas adicionadas devem estar inclusas dentro de uma chave <Directory>. Veja mais em Understand Default .Htaccess File Configuration para mais informações, lembrando que, caso você use a chave <Directory "/opt/bitnami/wordpress"> em uma instalação Bitnami, também é preciso trazer o conteúdo já existente em /opt/bitnami/wordpress/.htaccess, o mesmo vale para se você possuir plugins que editem o .htaccess.
Para servidores NGINX, o processo é feito na configuração do vhost, adicionando 2 trechos de código, a depender do uso, apontados no arquivo do link a seguir:
GitHub: https://github.com/ivancarlosti/WordPress-Bruteforce-Protection/blob/main/nginx.conf
Note que o trecho "Block login bruteforce attempt on wp-login.php block" deve ser inserido dentro do location "~/(wp-admin/|wp-login.php)" caso exista, se não, declare o location e insira o trecho nele.
Estratégias para forçar redirecionamentos para https e também para mover usuários para o domínio correto, como de sites com subdomínio para sem subdomínio ou vice versa também são recomendados. Essas estratégias estão declaradas nos links a seguir:
GitHub: https://github.com/ivancarlosti/WordPress-Bruteforce-Protection/blob/main/.htaccess-redirect
GitHub: https://github.com/ivancarlosti/WordPress-Bruteforce-Protection/blob/main/nginx-redirect.conf
E para finalizar, um bloco de NGINX para quem estiver com dificuldade para fazer o CORS funcionar em aplicações específicas como uso de domínio próprio na rede Nostr, ou o uso de domínio próprio como endereço de carteira Lightning:
GitHub: https://github.com/ivancarlosti/WordPress-Bruteforce-Protection/blob/main/nginx-cors.conf
Fonte: