Como evitar Spam de Bots no seu Site
Eventualmente, todo site na internet irá sofrer de Spam causados por Bots e dependendo do nível de sofisticação dessas automações, é um problema bastante difícil de resolver e eu prevejo que o TabNews cada vez mais será um alvo comum para isso.
Para ajudar a solucionar isso, o gugadeschamps me mandou essa discussão no Hacker News e eu gostaria de destacar o resumo que está no primeiro comentário.
- Coloque
Rate-limit
em tudo, absolutamente tudo. Coloque limites sanos. - Faça o
Rate-limit
em requests comPOST
ainda mais agressivo. Preferencialmente baseado nogeoip
. - Faça o
Rate-limit
em Login e Comentários ainda mais agressivo. Faça o banimento de IPs que excedam essa quantidade. - Exija
TLS
. ElimineTLSv1.0
eTLSv1.1
. Os bots certamente quebram. - Exija
SNI
. Não responda semSNI
(onginx
tem o código de retorno444
para isso). Faça o banimento de IP's no primeiro acesso que se conectam sem. Não há uso legítimo e você também desaparecerá de lugares como Shodan. - Se você puder, exija
HTTP/2.0
. Bots quebram. - Faça o banimento de IPs listados no
StopForumSpam
, proíba endereços de e-mail de destino listados lá. Se possível também contribua de volta paraSFS
eAbuseIPDB
. - Colete
hashes JA3
, descubra os maliciosos, bana IPs que usam esses hashes. Isso bloqueia muita m*** trivialmente porque mirar em ferramentas em vez de comportamento é preciso.
Nem todas as soluções propostas são livres de efeitos colaterais, então cada caso precisa ser analisado com as características do seu site e serviço, mas achei uma ótima lista para começar a pensar a respeito, principalmente por conter termos que eu não conhecia, como hashes JA3
.