web-dev-qa-db-fra.com

IE 11 envoie différents en-têtes User-Agent à différents sous-domaines

Eh bien, je travaille sur une protection de session partagée basée sur l'agent utilisateur entre les sous-domaines.

J'ai été extrêmement surpris que cela fonctionne bien jusqu'à ce que IE 11 aperçu soit sorti récemment. Il y a 2 sous-domaines

example.com et sub.example.com

J'ai intercepté des demandes vers les deux domaines et il semble que l'en-tête HTTP USER-AGENT envoyé à chaque domaine soit différent.

La demande à example.com a:

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv: 11.0) comme Gecko

La demande à sub.example.com a:

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C ; .NET4.0E; BRI/1; MS-RTC LM 8; rv: 11.0) comme Gecko

Avez-vous une idée de la raison de cet étrange comportement dynamique?

18
WooDzu

Microsoft a le site en question configuré pour utiliser l'usurpation d'identité UA (via la liste Affichage de compatibilité) et cela provoque IE pour envoyer une chaîne UA personnalisée.

L'usurpation d'identité basée sur CompatView a été activée dans IE8 en 2008: http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx

Et dans IE10 +, il est devenu plus riche, avec une usurpation par site pour permettre la meilleure expérience. Voir http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-Explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko -webkit.aspx pour une exploration de ce sujet.

19
EricLaw

Documentation officielle de Microsoft sur MSDN:

Citations:

Pour de nombreux sites Web hérités, certaines des mises à jour les plus visibles pour IE11 impliquent la chaîne d'agent utilisateur. Voici ce qui est signalé pour IE11 sur Windows 8.1:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

Voici la chaîne pour IE11 sur Windows 7:

Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

Dans de rares cas, il peut être nécessaire d'identifier uniquement IE11. Utilisez le jeton Trident pour le faire.

N'est-ce pas sympa, ils disent "comme Gecko"? ;)

9
metadings