web-dev-qa-db-fra.com

Requêtes d'URL avec [objet] à la place des valeurs de paramètre

Nous voyons des demandes adressées à notre serveur avec le littéral [object] remplaçant les valeurs où les paramètres doivent être. Par exemple: http://example.com/users/[object].

J'ai trouvé quelques suggestions que cela pourrait être quelque chose à voir avec IE9 mais nous ne pouvons pas tout à fait le clouer. Voir this .

Est-ce que quelqu'un d'autre a vu ce comportement? Avez-vous réussi à cerner le problème?

1
Tim Harding

Les URL que vous voyez dans vos fichiers journaux sont probablement générées par un code JavaScript provenant d'un ancien Internet Explorer.

Dans un navigateur moderne, en JavaScript, si vous convertissez un objet en chaîne et que Object.prototype.toString () n'est pas écrasé, vous obtenez:

[object Object]

Mais dans l'ancienne version d'Internet Explorer comme IE8, vous obtenez simplement:

[object]

Ainsi, les URL que vous voyez proviennent probablement de scripts bogués exécutés dans le vieil Internet Explorer.

P.S .: Comme le moteur de recherche Google supprime tous les caractères spéciaux tels que [ et ], j’utilise le moteur de recherche SymbolHound pour trouver la réponse à cette question.

1
Ortomala Lokni

Il est tout à fait possible qu’un morceau de code Javascript avec une fonctionnalité ajax dans le système fasse des requêtes à http://example.com/users/[object] au lieu de http://example.com/users/wanteditem. Si vos pages Web contiennent du Javascript, essayez de le faire fonctionner sans javascript et vous pourrez alors exclure le javascript.

En outre, vérifiez les journaux de votre serveur et vous devriez au moins trouver une adresse IP à côté de la ligne qui indique [object]. Recherchez également le champ de référence dans le journal (qui est probablement la dernière entrée dans les journaux Apache), ainsi que l'heure à laquelle la demande s'est produite. S'il y a plusieurs demandes pour [object] où le temps entre elles est inférieur à quelques secondes, il y a alors des chances que quelqu'un, ou quelque chose, tente de trouver une vulnérabilité de votre serveur. Un remède serait de bloquer l'adresse IP incriminée.

Vous pouvez également utiliser mod_rewrite pour filtrer les URL si votre serveur est Apache et que vous avez un accès suffisant aux fichiers .htaccess. Par cela, je veux dire que vous pouvez faire en sorte que si les URL contiennent des caractères étranges, vous pouvez faire en sorte que le serveur affiche une page avec un statut HTTP de 410 (aka GONE). Cela présente l’avantage d’indiquer à tout moteur de recherche (en particulier Google) qui peut avoir indexé de telles URL foirées pour ne plus les indexer.

0
Mike