web-dev-qa-db-ja.com

パラメータ値の代わりに[オブジェクト]を含むURLリクエスト

パラメータが必要な値をリテラル[object]で置き換えて、サーバーへのリクエストを確認しています。例:http://example.com/users/[object]

IE9と関係があるかもしれないという提案をいくつか見つけましたが、それを完全に特定することはできません。 this を参照してください。

他の誰かがこの行動を見ましたか?問題を特定できましたか?

1
Tim Harding

ログファイルに表示されるURLは、おそらく古いInternet ExplorerからのJavaScriptによって生成されます。

最新のブラウザ、JavaScriptで、オブジェクトを文字列に変換し、 Object.prototype.toString() が上書きされない場合、次のようになります。

[object Object]

しかし、IE8のようなInternet Explorerの古いバージョンでは、次のものを入手するだけです。

[object]

したがって、表示されるURLは、おそらく古いInternet Explorerで実行されているバグのあるスクリプトからのものです。

追伸:Google検索エンジンは[]などのすべての特殊文字を削除するので、この質問に対する答えを見つけるために SymbolHound検索エンジン を使用します。

1
Ortomala Lokni

Ajax機能を備えたバグのあるJavascriptコードがhttp://example.com/users/[object]ではなくhttp://example.com/users/wanteditemにリクエストを送信している可能性が非常に高いです。 WebページにJavascriptが含まれている場合は、javascriptを使用せずにページを機能させてから、JavaScriptを除外できます。

また、サーバーのログを確認すると、少なくとも[object]を示す行の隣にIPアドレスが見つかるはずです。また、ログ内のリファラーフィールド(Apacheログの最後のエントリである可能性が高い)と、リクエストが発生した時間も探します。 [object]のリクエストが複数あり、それぞれの間隔が数秒未満の場合、誰かまたは何かがサーバーの脆弱性を見つけようとしている可能性があります。解決策は、問題のIPアドレスをブロックすることです。

サーバーでApacheを使用し、.htaccessファイルに十分にアクセスできる場合は、mod_rewriteを使用してURLをフィルタリングすることもできます。これにより、URLに奇妙な文字が含まれている場合、サーバーにHTTPステータス410(別名GONE)のページを表示させることができるようになります。これには、そのようなねじれたURLがインデックス化されている可能性がある検索エンジン(特にGoogle)に通知して、インデックス化を停止するという利点があります。

0
Mike