É possível impedir que o Chrome e outros navegadores pré-busquem / renderizem meu site?

14

Sei que você pode orientar o Chrome a buscar previamente links que você acha que os usuários provavelmente clicam no seu site , mas você também pode fazer o inverso? Você pode dizer ao Chrome (ou realmente a qualquer navegador) para não buscar e pré-renderizar seu site?

Existe uma tag ou outra maneira de informar aos navegadores que a busca prévia de links da página visualizada no momento não deve ser realizada?

Ian C.
fonte
1
Curioso, por que você quer isso?
Martijn
@Martijn Um caso que eu posso ver é quando seu site contém conteúdo altamente dinâmico ou dependente do tempo, em que um atraso entre a renderização da página e o momento em que o usuário realmente isso importa.
Anders Fjeldstad

Respostas:

12

Chrome e Safari enviam um X-Purpose: previewcabeçalho HTTP ao buscar / renderizar conteúdo da web. [ Fonte ]

O Firefox envia um cabeçalho semelhante chamado X-moz: prefetch. [ Fonte ]

Para bloquear a pré-busca, você pode retornar uma resposta 404 quando esses cabeçalhos forem detectados, conforme sugerido por Peter Freitag nesta postagem do blog . Ele recomenda adicionar essas linhas .htaccesspara bloquear a pré-busca do Firefox:

RewriteEngine On
SetEnvIf X-moz prefetch HAS_X-moz 
RewriteCond %{ENV:HAS_X-moz} prefetch 
RewriteRule .* /prefetch-attempt [L]

Você pode estender isso para bloquear a pré-busca do Firefox, Safari e Chrome assim (não testado, mas deve funcionar):

RewriteEngine On
SetEnvIf X-moz prefetch HAS_preview 
SetEnvIf X-Purpose preview HAS_preview
RewriteCond %{ENV:HAS_preview} .
RewriteRule .* /prefetch-attempt [L]
usuario
fonte
1

A resposta acima não funcionou para mim. O que funcionou, no entanto, foi o seguinte:

RewriteEngine On
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
SetEnvIfNoCase X-moz prefetch no_access=yes

# block pre-fetch requests with X-moz headers
RewriteCond %{ENV:no_access} yes
RewriteRule .* - [F,L]

De: askapache.com

O sinalizador [F] retorna um código de status 403 Proibido para o navegador, enquanto o [L] indica que a regra deve ser a última regra a ser processada.

Além disso, o chrome parece não buscar mais links (pelo menos para as metatags anteriores / próximas).

Gabe Hiemstra
fonte