Limitar tentativas de login sem um plugin?
Como proteger a página de login do WordPress sem usar um plugin
English version: Limit login attempts without a plugin?
Você pode encontrar muitos comentários e conselhos sobre isso na internet. Mas será que é verdade?
Por padrão, o WordPress permite tentativas ilimitadas de login através do formulário de login, envio de cookies especiais, uso de chamadas XML-RPC e chamadas à API REST. Isso facilita a quebra de senhas por meio de ataques de força bruta. Atualmente, hackers e bots tentam constantemente acessar seu site WordPress adivinhando sua senha de administrador e as senhas de outros usuários registrados. Portanto, se você deseja proteger seu site sem usar um plugin, você precisa:
- Conheça bem o PHP .
- É importante ter conhecimento suficiente sobre filtros e ações de autenticação (integrados ao WordPress) para poder utilizá-los. Recomendo começar com hooks como 'authenticate' e 'wp_login_failed'.
- Monitore as solicitações de autorização pós-login, XML RPC e API REST e, claro, não se esqueça dos cookies de autorização (eles são válidos?).
- Armazene em algum lugar todas as tentativas de login e todos os endereços IP para calcular quando e qual IP você precisa bloquear. Eu recomendo usar a API Transient. Sério. É a maneira mais fácil. Claro, você não terá controle total, mas usá-la permite que você faça algo sem precisar saber SQL.
- Calcular o tempo entre tentativas de login malsucedidas para um determinado endereço IP.
- Tenha uma ferramenta ou código PHP para redefinir esses contadores e bloquear o IP do cliente. E se algum cliente legítimo for bloqueado por acaso?
Parece loucura? Você tem uma segunda opção. Pode pesquisar no Google e pegar alguns trechos de código de algum blog na internet, sem qualquer garantia ou suporte.
Conclusão: Você pode encontrar muitas dicas na internet sobre como limitar tentativas de login sem usar plugins. Mas todas as dicas são dadas por pessoas que nem sequer sabem exatamente como funciona o algoritmo de autenticação do WordPress, incluindo aqueles caras do Stack Overflow. De qualquer forma, você pode fazer isso, se realmente não se importar com a segurança do seu site, porque não há como fazer isso da maneira correta sem conhecimento de programação em PHP e do mecanismo de autenticação do WordPress.