web-dev-qa-db-fra.com

Qu'est-ce que cela signifie lorsqu'un agent utilisateur contient un autre agent utilisateur?

Fondamentalement, parfois l'agent utilisateur aura son agent utilisateur normal affiché, puis la balise "User-Agent:" sera affichée à la fin, puis tout de suite un autre agent utilisateur sera affiché. Parfois, le second agent utilisateur est simplement ajouté au premier sans la balise "User-Agent:".

Voici quelques exemples que j'ai vus: Les premiers exemples contiennent la balise "User-Agent:" quelque part au milieu, et j'ai changé sa police pour qu'il soit plus facile à voir.

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); SLCC1; .NET CLR 2.0.50727;. NET CLR 3.0.04506)

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; MRA 5.10 (version 5339); User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 1.1.4322; .NET CLR 2.0.50727)

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 2.0.50727; .NET CLR 3.0. 4506.2152; .NET CLR 3.5.30729)

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 1.1.4322; .NET CLR 2.0. 50727; .NET CLR 3.0.4506.2152)

Voici quelques sans la balise "User-Agent:" au milieu, mais juste deux agents utilisateurs qui semblent collés ensemble.

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 3.5.30729)

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; IPMS/6568080A-04A5AD839A9; TCO_20090713170733; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); InfoPath.2)

Maintenant, juste pour ajouter quelques notes à cela. Je comprends que la balise "User-Agent:" est normalement un en-tête, et ce qui suit une séquence de chaînes typique "User-Agent:" est l'agent utilisateur réel qui est envoyé aux serveurs, etc., mais normalement le "User-Agent:" string ne doit pas faire partie de l'agent utilisateur réel, mais plutôt du préfixe ou d'une balise indiquant que ce qui va suivre sera l'agent utilisateur réel.

De plus, j'ai peut-être pensé: hé, ce ne sont que deux agents utilisateurs collés ensemble, mais en y regardant de plus près, vous réalisez qu'ils ne le sont pas. Sur toutes ces listes d'agents à deux utilisateurs, si vous regardez le crochet d'ouverture "(" juste avant le mot clé "compatible", vous réalisez que la paire avec ce crochet ")" est en fait à la fin, à la fin du deuxième utilisateur. agent. Ainsi, le premier agent utilisateur fermant le crochet ")" ne se produit jamais avant le début du second agent utilisateur, il est toujours correct à la fin. Par conséquent, le second agent utilisateur ressemble davantage à l’une des fonctionnalités du premier agent utilisateur, telle que: " Trident/4.0 "ou" GTB6 "etc etc ...

L'autre chose à noter que le deuxième agent d'utilisateur est toujours MSIE 6.0 (Internet Explorer 6.0), intéressant.

Au départ, je pensais que c’était une sorte de machine virtuelle affichant le navigateur utilisé et le navigateur installé, mais je me suis alors demandé quel serait l’intérêt de cela.

Enfin, pour le moment, je pense que c'est probablement une sorte de "vue de compatibilité", où même si MSIE 7.0 ou 8.0 est installé, lorsque mon mode hypothétique "Afficher dans Internet Explorer 6.0" est activé, l'agent utilisateur passe à quelque chose comme ça. Ceci étant, IE 8.0 est installé, mais restitue tout comme IE 6.0.

Existe-t-il ou existait-il une telle fonctionnalité dans Internet Explorer? Suis-je sur quelque chose ici? Que pensez-vous de ceci? Si vous avez d'autres idées, n'hésitez pas à nous le faire savoir.

Pour le moment, j'essaie simplement de comprendre s'il s'agit d'agents d'utilisateur valides ou non valides. Sur une liste d'environ 44 000 agents utilisateur, j'ai vu ce type d'agent double utilisateur environ 400 fois. J'en ai inspecté de près 40, et chacun d'eux avait MSIE 6.0 comme "deuxième" agent utilisateur (et le premier agent utilisateur était une version supérieure de MSIE, telle que 7 ou 8). Cela était vrai pour tous sauf un, où les deux agents utilisateurs étaient MSIE 8.0, en voici un:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 8.0; Win32; GMX); GTB0.0)

Cela s'est produit une fois dans mes 40 inspections "rapprochées". J'ai estimé le nombre 400 sur 44 000 en prenant un échantillon des 4 400 premiers agents utilisateurs et en ai trouvé 40 dans les agents utilisateurs MSIE/Windows, et j'ai extrapolé cette estimation pour en évaluer 40. Des événements similaires se produisaient également pour les agents utilisateurs non MSIE. là où il y avait deux Mozilla dans un agent utilisateur, les non-MSIE ajouteraient probablement 30% de plus que ceux que j'ai notés. Je peux vous en montrer des échantillons si quelqu'un le souhaite.

Voilà, c’est là où je suis, qu’en pensez-vous?

5
Erx_VB.NExT.Coder

Il s’agit presque certainement d’un bogue dans le logiciel accédant à votre site Web - navigateur, plug-in de navigateur ou programme de script/ligne de commande tel que wget. C'est comme si quelqu'un avait essayé de modifier l'en-tête User-agent mais l'avait plutôt collé dans un en-tête standard.

Sauf si l'adresse IP de l'utilisateur cause des problèmes de surcharge du serveur, vous ne pouvez rien faire.

2
DisgruntledGoat

"User-Agent:" à l'intérieur de la chaîne n'est pas normal au W3C, je n'ai pas trouvé de justification pour cette balise de chaîne; personnellement, je la bloque. J'ai passé des heures à analyser les adresses IP, les chaînes d'agents, les référents, etc.

Si cela aide les autres:

J'utilise des procédures en cascade pour isoler le mauvais trafic, en réduisant le temps de vérification et les ressources du serveur aussi bas que possible:

1) ROBOTS.txt

Avec la liste la plus complète de robots, je pourrais obtenir pour les interdire et raccourcir le trafic.

2) SESSION_Start

Routine avec des tableaux de mauvaises choses:

  • Les URL sont destinées à pirater directement: "xmlrpc | wordpress | wp-admin | ..."
  • Bons robots: "baidu | bingpreview | bingbot | adidxbot | googlebot.com | ..."
  • Mauvaises chaînes communes dans l'agent: "utilisateur-agent: | genieo | majestic12 | ..."
  • Grande liste de mauvaises chaînes NON communes: "abcdatos | almaden | amsu.ru | chaos | ..." (cette liste peut facilement contenir 3 000 chaînes)

a) Si la requête est une URL incorrecte, l'utilisateur obtient l'erreur 401.3. Traps wp-admin, xmlrpc.xml et autres attaques par URL.

b) Boucle si les chaînes "bons robots" dans User-Agent ignorent le reste de la vérification.

c) Boucle dans la "liste restreinte des agents nuisibles connus", le cas échéant, envoie l'erreur 403.1

d) Si la liste n'est pas courte, faites une boucle dans la grande liste de "chaînes incorrectes" et envoyez 401.3 (fin de la route pour l'utilisateur).

3) page de moniteur

Lorsqu'une chaîne est trouvée; L'adresse IP, le pays, la chaîne, l'URL, le référant et l'agent sont conservés en mémoire, pour pouvoir être vus dans la page de moniteur en temps réel en rouge, pour être examinés.

Exemple: "puffin" ou "user-agent:" peut être une erreur; les deux sont donc recherchés si ils font partie d'un navigateur, d'un logiciel, d'une télévision, d'un périphérique, d'une tablette ou d'un téléphone et de la matrice correcte.

Avoir une liste énorme de navigateurs et de versions permet de vérifier la chaîne de l'agent.

CONCLUSION:

J'ai trouvé entre autres que "User-Agent:" une chaîne de caractères se produisait à certaines heures de la journée, les adresses IP appartiennent principalement à US et sont proches du même réseau et des mêmes géolocalisations, ont une relation étroite avec le même type de navigateur, la même version et la même compatibilité. .

Refuser "User-Agent:" après une semaine semble ne pas arriver avant des jours ou des semaines, semble être celui qui le fait, a interdit la 403.1 et a cessé d'insister.

L'analyse de cette chaîne à l'adresse http://www.useragentstring.com/index.php semble qu'effectivement "user-agent:" est une fonctionnalité inconnue parmi d'autres indices qui ont permis de déterminer qu'il ne s'agit ni d'un utilisateur commun ni d'un utilisateur commun. une bonne araignée.

0
user2033838

Jetez un coup d'œil au réponse acceptée sur Stackoverflow, vous trouverez des liens vers les définitions standard RFC2616 et RFC1945.

À partir de mes propres expériences au cours de la période où j’ai développé un plugin de suivi des visiteurs, je peux ajouter que vous trouvez beaucoup d’en-têtes d’agent utilisateur faux et faux dans vos journaux.

Exemple: si une personne parcourt votre site avec des outils de ligne de commande tels que wget, il existe un paramètre user-agent-string permettant d'ajouter tout ce que vous voulez. De plus, de nombreux outils de spider SEO vous permettent d’ajouter des chaînes simples, ne serait-ce que pour se cacher. Certains plugins de confidentialité faussent les en-têtes (ou vous permettent de les changer). Les outils de script Kiddie Hacker sont également des faux. Oh, oui, et si vous avez des votes importants sur votre site (par exemple: les gens peuvent gagner quelque chose ou créer un battage médiatique), vous verrez beaucoup de faux :-)

0
initall