web-dev-qa-db-fra.com

Quel navigateur envoie l’agent d’utilisateur commençant par mozilla / 5.0 + et le transforme en amp;

Nous avons un site Web qui fonctionne depuis quelques années maintenant. Un de nos clients vient de commencer à avoir un problème intermittent. En regardant nos journaux iis6.0, le service fonctionne correctement lorsqu'un agent utilisateur commence "mozilla/4.0 +" mais échoue lorsque l'agent utilisateur commence "mozilla/5.0 +". Le client particulier n'a commencé à avoir ce problème que mercredi.

Est-ce que quelqu'un connaît le navigateur/mise à jour qui change la 4.0 à 5.0?

Le problème réel est qu'un "" dans une liste de paramètres d'URL est codé comme "amp;". Quelqu'un a vu quelque chose de semblable?

D'autres utilisateurs envoient depuis les navigateurs avec l'agent utilisateur 5.0+ sans problème.

Désolé pour les tags, mais n'avez pas le représentant pour en créer de nouveaux.

Merci d'avance, Patrick

Edit: salut Viper_sb,

C’est très probablement un script personnalisé (je suis avant tout un développeur c ++ alors je ne comprends pas vraiment). Notre site répond aux demandes d'autres sites développés par nos clients. Celui-ci a été effectué en Java script autant que je sache.

nous obtenons en fait une variété d’agents utilisateurs (probablement en fonction du client qui accède au service), en voici quelques-uns:

Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+fr;+rv:1.9.1.11)+Gecko/20100701+Firefox/3.5.11
Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US)+AppleWebKit/533.4+(KHTML,+like+Gecko)+Chrome/5.0.375.126+Safari/533.4 302 0 0
Mozilla/5.0+(Macintosh;+U;+PPC+Mac+OS+X;+fr)+AppleWebKit/523.12+(KHTML,+like+Gecko)+Version/3.0.4+Safari/523.12
Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US;+rv:1.9.2.8)+Gecko/20100722+Firefox/3.6.8
Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+fr;+rv:1.9.2.8)+Gecko/20100722+Firefox/3.6.8+(.NET+CLR+3.5.30729)
1
Patrick

Firefox 3.x et beaucoup d’autres le font.

Pouvez-vous publier la chaîne d'agent complet avec laquelle vous rencontrez des problèmes? Cela ressemble à un script personnalisé qui génère la demande et prétend être un certain agent. Mais crée de manière incorrecte la chaîne ident. Ou bien votre vérification par rapport à la chaîne de l'agent est incorrecte.

Edit: Les chaînes que vous avez postées sont encodées en url. Les + dans celles-ci doivent être des espaces. Je ne sais pas trop où se situe le problème, que ce soit du côté javascript ou de l'utilisateur visitant le site.

Je vais aller ici et deviner que votre javascript est en train de décoder la chaîne de l'agent, cela ne devrait pas arriver (à moins que vous ne fassiez une URL ou la publiez sur votre site web).

2
Viper_Sb

J'imagine que le + dans les chaînes de l'agent utilisateur est dû à la façon dont IIS l'enregistre.

Juste pour clarifier, dites-vous que vous avez des chaînes de requête dans les liens sur le site et que certains agents d'utilisateur font des demandes pour ces URL mais utilisent & au lieu de &?

Si tel est le cas, alors la cause la plus probable est un bot extrêmement stupide qui usurpe sa chaîne UA. Tout code HTML correctement écrit doit coder le & dans l'URL sous la forme &. Un navigateur approprié et un bot sensible ont été créés correctement et savent que vous voulez dire http://example.com/?a=1&b=2 lorsque vous créez un lien vers /?a=1&b=2 dans votre code source. Prendre n'importe quel autre href à la lettre ne montre pas les problèmes, mais prendre ceux-là à la lettre montrerait le comportement que je pense que vous décrivez.

Je reçois toutes sortes de requêtes pour des pages qui n'existent pas à l'endroit où elles sont demandées, mais existent ailleurs, et c'est normalement parce que le bot n'était pas capable de gérer des chemins tels que les chemins de base (ce n'est pas mon cas - OpenCart les utilise pour une raison quelconque) ou des URL absolues ou des URL sur d'autres hôtes (cela prend la partie chemin mais pas l'hôte).

Un bon indicateur a tendance à exécuter une recherche rDNS sur l’IP. Si un ou plusieurs d'entre eux se reconvertissent en hôte Web, quelqu'un exécute un script bot/dumb.

1
IBBoard