数年前から稼働しているウェブサイトがあります。顧客の1人が断続的な問題を抱え始めました。 iis6.0のログを見ると、「mozilla/4.0 +」で始まるユーザーエージェントがある場合、サービスは正しく動作しますが、ユーザーエージェントが「mozilla/5.0 +」で始まる場合は失敗します。特定の顧客は、水曜日にのみこの問題を抱え始めました。
4.0を5.0に変更するブラウザー/アップグレードを知っている人はいますか?
実際に発生する問題は、urlパラメータリストの「」が「amp;」としてエンコードされていることです。誰も似たようなものを見ましたか?
5.0+ユーザーエージェントを使用して問題なくブラウザから送信する他のユーザーがいます。
タグについては申し訳ありませんが、新しいタグを作成する担当者がいません。
事前に感謝、パトリック
編集:Viper_sbこんにちは、
ほとんどの場合、カスタムスクリプトです(私は主にC++開発者なので、あまり理解していません)。私たちのサイトは、他の顧客が開発したサイトからのリクエストを処理します。これは、私の知る限りJavaスクリプトで行われました。
実際にさまざまなユーザーエージェントを取得しています(おそらく、顧客がサービスにアクセスしている顧客によって異なります)。
Mozilla/5.0+(Windows;+U;+Windows+NT+6.1;+fr;+rv:1.9.1.11)+Gecko/20100701+Firefox/3.5.11
Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US)+AppleWebKit/533.4+(KHTML,+like+Gecko)+Chrome/5.0.375.126+Safari/533.4 302 0 0
Mozilla/5.0+(Macintosh;+U;+PPC+Mac+OS+X;+fr)+AppleWebKit/523.12+(KHTML,+like+Gecko)+Version/3.0.4+Safari/523.12
Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US;+rv:1.9.2.8)+Gecko/20100722+Firefox/3.6.8
Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+fr;+rv:1.9.2.8)+Gecko/20100722+Firefox/3.6.8+(.NET+CLR+3.5.30729)
Firefox 3.xおよび他の多くのユーザーがサポートしています。
問題が発生しているエージェント文字列全体を投稿できますか?リクエストを生成し、特定のエージェントのふりをしているカスタムスクリプトのように思えます。しかし、ident文字列を誤って作成しています。または、エージェント文字列に対するチェックが正しくありません。
編集:投稿した文字列はURLエンコードされており、その中の+はスペースである必要があります。問題がJavaScript側にあるのか、サイトにアクセスしているユーザーにあるのかはわかりません。
私はここに出て、あなたのjavascriptがエージェント文字列をデコードしていると思います、これは起こるべきではありません(あなたがそれからURLを作るか、あなたのウェブサイトにそれを投稿するつもりでない限り)。
UA文字列の+
は、IISが記録する方法が原因であると推測しています。
明確にするために、サイトのリンクにクエリ文字列があり、一部のUAは&
ではなく&
を使用してそれらのURLを要求していると言っていますか?
その場合、最も可能性の高い原因は、UA文字列をスプーフィングしている非常に愚かなボットです。適切に記述されたHTMLは、URLの&を&
としてエンコードする必要があります。適切なブラウザと賢明なボットが正しく作成され、ソースコードでhttp://example.com/?a=1&b=2
にリンクするときに/?a=1&b=2
を意味することがわかります。他のhrefを文字通り取得することは問題を示しませんが、それらを文字通り取得することは、あなたが説明していると思う動作を示します。
要求された場所には存在しないが、他の場所に存在するページに対するあらゆる種類の要求を受け取ります。これは通常、ボットがベースパスなどの処理を行えなかったためです(OpenCartでは使用されません)何らかの理由で)または絶対URLまたは他のホスト上のURL(ホストではなくパス部分を取ります)。
1つの良い指標は、IPでrDNSルックアップを実行することです。それらの1つ以上がWebホストに解決される場合、誰かがボット/ダムスクリプトを実行しています。