Je sais qu'il est possible d'obtenir un HTTP_REFERER vide. Dans quelles circonstances cela se produit-il? Si j'en reçois un vide, est-ce que cela signifie toujours que l'utilisateur l'a changé? Est-ce qu'obtenir un vide équivaut à en obtenir un nul? et dans quelles circonstances puis-je l'obtenir aussi?
Il sera/peut être vide lorsque l'utilisateur final
HTTP_REFERER - envoyé par le navigateur, indiquant la dernière page consultée par le navigateur!
Si vous faites confiance à [HTTP_REFERER] pour une raison importante, vous ne devriez pas, car il peut être simulé facilement:
Essayez cette extension firefox, vous pourrez définir les en-têtes de votre choix:
@Master of Celebration:
Firefox:
extensions:refspoof , refontrol , modifier les en-têtes , no-referer
Complètement désactiver: l'option est disponible dans about: config sous "network.http.sendRefererHeader" et vous souhaitez définir cette valeur sur 0 pour désactiver le passage de référent.
Google chrome/Chrome:
extensions:noref , spoofy , renvoi externe
Complètement désactiver: Changez de fichier ~/.config/google-chrome/Par défaut/Préférences ou ~/.config/chrome/Par défaut/Préférences et définissez ceci:
{
...
"enable_referrers": false,
...
}
Ou ajoutez simplement --no-referrers au raccourci ou en cli:
google-chrome --no-referrers
Opera:
Complètement désactiver: Paramètres> Préférences> Avancé> Réseau, et décochez "Envoyer les informations sur le référent"
Web service d'usurpation d'identité:
proxy de filtrage autonome (usurper tout en-tête):
Usurper http_referer lors de l'utilisation de wget
'--Referer = url'
Usurper http_referer lors de l'utilisation de curl
-e, --ferer
Usurpation de http_referer avec telnet
telnet www.yoursite.com 80 (press return)
GET /index.html HTTP/1.0 (press return)
Referer: http://www.hah-hah.com (press return)
(press return again)
La liste de BalusC est solide. Une autre manière pour laquelle ce champ semble souvent vide est lorsque l'utilisateur est derrière un serveur proxy. Cela ressemble à être derrière un pare-feu mais est légèrement différent donc je voulais le mentionner pour des raisons de complétude.
Il sera également vide si le nouveau projet de norme de la politique de renvoi est utilisé pour empêcher que l'en-tête du référent soit envoyé à la demande Origin. Exemple:
<meta name="referrer" content="none">
Bien que Chrome et Firefox aient déjà implémenté une version préliminaire de la politique de référencement, vous devez être prudent, car par exemple Chrome attend no-referrer
au lieu de none
(et j’ai aussi vu never
quelque part).
J'ai trouvé l'implémentation du navigateur référent vraiment incohérente.
Par exemple, un élément d'ancrage avec l'attribut "download" fonctionne comme prévu dans Safari et envoie le référant, mais dans Chrome, le référent sera vide ou "-" dans les journaux du serveur Web.
<a href="http://foo.com/foo" download="bar">click to download</a>
Est cassé dans Chrome - aucun référent envoyé.