パラメータが必要な値をリテラル[object]
で置き換えて、サーバーへのリクエストを確認しています。例:http://example.com/users/[object]
。
IE9と関係があるかもしれないという提案をいくつか見つけましたが、それを完全に特定することはできません。 this を参照してください。
他の誰かがこの行動を見ましたか?問題を特定できましたか?
ログファイルに表示されるURLは、おそらく古いInternet ExplorerからのJavaScriptによって生成されます。
最新のブラウザ、JavaScriptで、オブジェクトを文字列に変換し、 Object.prototype.toString() が上書きされない場合、次のようになります。
[object Object]
しかし、IE8のようなInternet Explorerの古いバージョンでは、次のものを入手するだけです。
[object]
したがって、表示されるURLは、おそらく古いInternet Explorerで実行されているバグのあるスクリプトからのものです。
追伸:Google検索エンジンは[
や]
などのすべての特殊文字を削除するので、この質問に対する答えを見つけるために SymbolHound検索エンジン を使用します。
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)に通知して、インデックス化を停止するという利点があります。