(Question de prime en bas)
Je rencontre un problème avec un client accédant à notre site, et la cause principale est que le WAF (Web Application Firewall) n'aime pas sa chaîne User-Agent:
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:34.0; C7QcSBPWTsrpX5YLvVZMqiujEZLWPtOYk3tDZ9WhW18=) Gecko/20100101 Firefox/34.0
Dans ce cas, la chaîne encodée en base64 déclenche un faux positif dans le WAF qui pense que l'agent utilisateur est libwww-perl. La chaîne base64 ne décode pas en texte lisible.
- La présence d'une chaîne codée en base64 dans un User-Agent est-elle normale ou inhabituelle?
- L'utilisation de chaînes base64 dans un User-Agent est-elle couverte par des RFC ou des pratiques des principaux fournisseurs?
J'essaie de comprendre ce qui se passe ici; Je ne pense pas que la signature WAF soit complètement hors de propos, donc je préfère ne pas simplement la désactiver, mais je n'ai jamais vu ce type de chaîne User-Agent auparavant, je préfère donc mieux comprendre à quel point elle est courante et / ou légitime un cas d'utilisation.
Le site est conçu pour être utilisé par les humains avec des navigateurs - ce n'est pas une API ou quelque chose comme ça - et il m'a été signalé que l'utilisateur a essayé d'accéder au site avec "FF / IE / Chrome" et a échoué. Cependant, je montre des connexions réussies à partir de la même IP cliente avec un agent utilisateur Opera:
User-Agent: Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.16
C'est un peu étrange que l'utilisateur signale avoir essayé IE, mais toutes les chaînes User-Agent que je vois semblent être Linux. (Comme d'habitude, le contact avec l'utilisateur final passe par plusieurs parties, je ne peux donc pas faire entièrement confiance à ce que j'entends). Il est également probable que l'IP soit le côté sortant d'un proxy Web de classe affaires, ce qui expliquerait pourquoi je vois certains Opera travailler pour quelqu'un tandis que quelqu'un d'autre signale des problèmes à partir de la même IP.
Mise à jour
Inspiré par l'exemple de @PlanetScaleNetworks, j'ai googlé la chaîne et à partir de là j'ai fini par utiliser UA Tracker pour rechercher des chaînes base64 (ou, le sous-ensemble d'entre elles qui ont été remplies - j'ai cherché "=)"). Il a renvoyé environ 20 User-Agents:
Je vais ajouter une prime à cette question, et l'espace de réponse que je recherche est "quel type de logiciel met des chaînes base64 dans les User-Agents, et pourquoi? Et y a-t-il une marque de légitimité pour cette pratique? "
Point mineur:
L'utilisateur a contourné notre problème en utilisant un plugin de navigateur pour modifier son User-Agent, donc c'est maintenant un problème académique - mais je pense que c'est un problème académique intéressant :)