Por causa de alguns ataques DDOS feitos por amadores no meu site, eu tive que negar algum tráfego com o .htaccess que funcionava bem.
Infelizmente, também bloqueia o googlebot / bingbot:
order allow, deny
deny from 54.
SetEnvIfNoCase Referer "^$" bad_user
SetEnvIfNoCase User-Agent "^Wget" bad_user
Deny from env=bad_user
Ele simplesmente bloqueia todo o tráfego de 54.x.x.x
(somente o tráfego que recebo é da nuvem amazon infectada - eu sei que poderia excluir apenas 30 intervalos de IPs para a nuvem amazônica e não o todo 54.x.x.x
, mas eu estava precisando de solução rápida).
O restante dos bots (a maioria deles da China, Taiwan e outros) não usa referrer, então:
SetEnvIfNoCase Referer "^$" bad_user
bloqueia todos eles.
Mas também tem efeitos colaterais :
- Quando alguém visita minha página do marcador ou quando a digita diretamente no navegador (por exemplo, ele a transforma em cartão de visita), ele não vê meu website.
- O Googlebot, o bingbot (assim como outros bots menos importantes) geralmente não usam referenciadores.
#1
é um inconveniente, mas #2
é um problema real que preciso resolver rapidamente.
Descobri que os bots importantes para mim usam esses marcadores:
66.249.64.119 - - [...] "GET /robots.txt HTTP/1.1" 403 534 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.64.119 - - [...] "GET /programowanie/ HTTP/1.1" 403 537 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.64.115 - - [...] "GET /3d-graphic/ HTTP/1.1" 403 535 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
207.46.13.4 - - [...] "GET /robots.txt HTTP/1.1" 403 534 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
207.46.13.4 - - [...] "GET / HTTP/1.1" 403 524 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
É possível, em .htaccess
, mesclar minhas regras com "mas se o rótulo contiver" Googlebot "ou" bingbot ", deixe-o" como o mais importante (mesmo que não o faça) usar o referenciador)?
Se não, talvez eu possa adicionar algo a robots.txt
para informar o Google / Bing de que eles deveriam colocar o referenciador em seus rótulos (duvido que eles o levassem em conta)?