Bloqueio de todos os usuários sem referenciador MAS permitindo o Googlebot / bingbot ao mesmo tempo (com .htaccess)

3

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 :

  1. 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.
  2. 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)?

    
por PolGraphic 30.11.2014 / 16:21

1 resposta

1

Encontrei alguma solução para #2 :

order deny,allow
deny from 54.

SetEnvIfNoCase Referer "^$" bad_user
SetEnvIfNoCase User-Agent "^Wget" bad_user
SetEnvIfNoCase User-Agent "http://www.bing.com/bingbot.htm" good_user
SetEnvIfNoCase User-Agent "http://www.google.com/bot.html" good_user
Deny from env=bad_user
Allow from env=good_user

Observe o order deny, allow - graças a ele, funcionará assim:

  1. Bloqueia todo o tráfego de 54.x.x.x . Bloqueie também todo o tráfego sem referenciador.
  2. Em seguida, desbloqueie o tráfego da solicitação que contém http://www.bing.com/bingbot.htm ou http://www.google.com/bot.html .

De qualquer forma, esperarei por outras respostas , porque não tenho certeza se é a solução ideal para #2 .

E eu ainda não consegui resolver #1 .

Então, se você quiser:

block all users without referrer BUT allow Googlebot/bingbot at the same time

você pode usar meu código apenas para .htaccess sem deny from 54. e SetEnvIfNoCase User-Agent "^Wget" bad_user lines, que são específicos para meu caso (ddos).

    
por 30.11.2014 / 16:38