web-dev-qa-db-fra.com

Est-il possible d'empêcher Chrome et les autres navigateurs de pré-récupérer / afficher mon site?

Je sais que vous pouvez guide Chrome pour pré-relire des liens que les utilisateurs risquent de cliquer sur votre site , mais pouvez-vous également effectuer l'inverse? Pouvez-vous dire à Chrome (ou vraiment à tout navigateur ) de ne pas pré-extraire et prérender votre site?

Existe-t-il un tag ou un autre moyen permettant aux navigateurs de pré-rechercher des liens dans la page actuellement affichée ne devrait pas être effectué?

14
Ian C.

Chrome et Safari envoient un en-tête HTTP X-Purpose: preview lors de la pré-extraction/restitution du contenu Web. [ Source ]

Firefox envoie un en-tête similaire appelé X-moz: prefetch. [ Source ]

Pour bloquer le prélecture, vous pouvez renvoyer une réponse 404 lorsque de tels en-têtes sont détectés, comme suggéré par Peter Freitag dans cet article de blog . Il recommande d'ajouter ces lignes à .htaccess pour bloquer le prélecture de Firefox:

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

Vous pouvez étendre cela pour bloquer Firefox, Safari et Chrome en effectuant une pré-extraction comme ceci (non testé, mais qui devrait fonctionner):

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

Google Chrome n'envoie plus d'en-têtes spéciaux pour les demandes de pré-création. Voir:

7
hawk

La réponse ci-dessus n'a pas fonctionné pour moi. Qu'est-ce qui a bien fonctionné, cependant:

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

L'indicateur [F] renvoie un code d'état 403 Interdit au navigateur, tandis que le [L] indique que cette règle doit être la dernière règle à traiter.

De plus, chrome ne semble plus lancer de pré-extraction de liens (du moins pour les balises META précédentes/suivantes).

1
Gabe Hiemstra