Параметры строки запроса перемешиваются

Параметры строки запроса перемешиваются

С 9 сентября 2015 года мы наблюдаем странное поведение данных, отправляемых в наши системы из JavaScript.

Проблема проявляется, когда строка запроса отправляется на наши серверы. Некоторые значения содержащихся параметров в запросе get перетасовываются. Отображение полученных данных невозможно, так как параметры полностью деформируются.

Например, параметр 'foo=bar' получает 'foo=abr' или 'foo=rab'. Это означает, что данные все еще доступны, но символы больше не в правильном порядке. Это происходит только с параметрами, длина которых превышает 8 символов.

Мы вычисляем контрольную сумму на основе хэша jenkins для строки запроса. Эта контрольная сумма передается правильно, так как длина строки всего 6 символов. Запрос GET отправляется в наши системы сразу после вычисления контрольной суммы. Поэтому проблема не должна быть в javascript.

Анализ журналов доступа наших серверов показывает, что параметры уже перетасованы при получении.

К настоящему моменту мы могли наблюдать эту проблему только на пользовательских агентах Mozilla Firefox в сочетании с операционными системами Microsoft Windows. Пример ошибочных запросов от вчерашнего дня показывает следующие пользовательские агенты:

  • 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/что-может-быть-перетасовкой-параметров-строки-запроса-сконструированных-в-javascript) описывающий похожую проблему.

Есть ли у кого-нибудь предложения по этой проблеме? Или кто-нибудь сталкивался с подобными эффектами при использовании своего приложения?

Связанный контент