Como bloquear esse padrão de URL no VCL do Varnish?

1

Meu site está sendo seriamente atingido por spambots e scrappers. Eu usei o Cloudflare, mas o problema ainda permanece lá. O problema é spambots acessar URLs inexistentes causando muita carga para o meu backend drupal que vai todo o caminho e bootstraps db apenas para servir um documento de erro 404.

Eu não posso simplesmente distribuir os 404 não-drupal para todos os erros de página não encontrados, já que eu preciso ter o drupal para pegá-los. Como o verniz está na frente, ele pode verificar se o bot está agindo legal e pedindo url válido - se não, ele os envia 404 ou 403. Esses bots estão causando erros usando esse padrão:

http://www.megaleecher.net/http:/www.megaleecher.net/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_S/Using_iPhone_As_USB_Mass_Storage

Agora, pls. sugerir uma diretiva VCL regex varnbisg que capture esse padrão de URL e exiba um erro 404 do verniz, impedindo que ele alcance o apache / drupal?

    
por iTech 27.10.2012 / 16:06

3 respostas

3

Você já tentou encontrar caminhos de URL nos quais comece com / http?

if (req.url ~ "^/https?:") {
  error 404 "Not found" 
}
    
por 01.11.2012 / 17:57
2

Já pensou em implementar o cache de seus 404s? Para bloqueá-los com regexes, você precisa manter seu VCL e seu back-end em sincronia para evitar o bloqueio de URLs válidos. Se você armazenar em cache apenas 404s por um período de tempo significativo, ainda precisará carregar a partir do backend uma vez por URL, mas as solicitações subsequentes receberão uma página 404 em cache. Você pode fazer uma limpeza manual se adicionar conteúdo real a uma URL com uma resposta 404 em cache.

    
por 27.10.2012 / 17:10
0

"Meu site está sendo atingido por spambots e scrappers",

Eles são provenientes do (s) mesmo (s) IP (s)? Você tentou bloquear os endereços IP?

    
por 06.11.2012 / 01:10