Je dois vérifier et enregistrer le référent des visiteurs de mon application Web. Quelle est la fiabilité de l'utilisation de HTTP_REFERER
? Et existe-t-il d'autres alternatives?
En utilisant HTTP_REFERER
n'est pas fiable, sa valeur dépend de l'en-tête HTTP Referer
envoyé par le navigateur ou l'application client au serveur et ne peut donc pas être approuvé.
En ce qui concerne l'en-tête Referer
, la section 15.1.2 de RFC2616 indique:
Par conséquent, les applications DEVRAIENT fournir autant de contrôle sur ces informations que possible au fournisseur de ces informations.
et
Nous suggérons, bien que cela ne soit pas obligatoire, qu'une interface à bascule pratique soit fournie à l'utilisateur pour activer ou désactiver l'envoi des informations de provenance et de référence.
De nombreux outils de confidentialité en ligne modifient cette valeur et de nombreux navigateurs tels que FireFox ont depuis longtemps autorisé les utilisateurs à empêcher l'envoi de cet en-tête. Donc, en un mot, je ne compterais pas sur elle à des fins sérieuses. Par exemple, sécuriser des formulaires afin que les spammeurs non autorisés ne puissent pas publier de valeurs, car le Referer
peut être usurpé.
Pour plus d'informations, voir:
tilisation du champ référent pour l'authentification ou l'autorisation (WayBackMachine)