クエリ文字列パラメータがシャッフルされる

クエリ文字列パラメータがシャッフルされる

2015 年 9 月 9 日以降、JavaScript からシステムに送信されるデータに異常な動作が見られるようになりました。

問題は、クエリ文字列がサーバーに送信されたときに発生します。GET リクエストに含まれるパラメータの一部の値がシャッフルされます。パラメータが完全に変形されるため、受信したデータのマッピングは不可能です。

たとえば、パラメータ 'foo=bar' は 'foo=abr' または 'foo=rab' になります。これは、データは引き続き使用可能ですが、文字の順序が正しくないことを意味します。これは、8 文字を超えるパラメータでのみ発生します。

クエリ文字列の Jenkins ハッシュに基づいてチェックサムを計算します。文字列の長さは 6 文字しかないため、このチェックサムは正しく送信されます。チェックサムの計算後、GET リクエストはすぐにシステムに送信されます。そのため、問題は JavaScript にはないはずです。

弊社のサーバーのアクセス ログを分析すると、パラメータは受信時にすでにシャッフルされていることがわかります。

現時点では、この問題は Microsoft Windows オペレーティング システムと組み合わせた Mozilla Firefox ユーザー エージェントでのみ確認されています。昨日の障害のあるリクエストのサンプルでは、​​次のユーザー エージェントが示されています。

  • Mozilla/5.0 (Windows NT 10.0; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
  • Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 5.1; rv:39.0) Gecko/20100101 Firefox/39.0
  • Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 6.0; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 6.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0
  • Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
  • Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 6.2; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
  • Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
  • Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0

これらのリクエストは広範囲の IP アドレスから送信されており、リクエスト全体に対する割合が非常に低い (0.1% 未満) ため、攻撃の形態である可能性は低いです。クライアントの動作も正常であるようです。

Redditの投稿があります(https://redd.it/3lxg26) と stackoverflow の投稿 (https://stackoverflow.com/questions/32572264/what-might-be-shufflling-my-query-string-parameters-constructed-in-javascript) も同様の問題を説明しています。

この問題について何か提案がある人はいますか? または、アプリケーションで同様の影響を経験している人はいますか?

関連情報