
2015년 9월 9일 이후 자바스크립트에서 시스템으로 전송된 데이터의 이상한 동작을 관찰하고 있습니다.
쿼리 문자열이 서버로 전송되면 문제가 나타납니다. 가져오기 요청에 포함된 매개변수의 일부 값이 섞입니다. 매개변수가 완전히 변형되므로 수신된 데이터의 매핑이 불가능합니다.
예를 들어 'foo=bar' 매개변수는 'foo=abr' 또는 'foo=rab'을 가져옵니다. 이는 데이터를 계속 사용할 수 있지만 문자의 순서가 더 이상 올바르지 않음을 의미합니다. 이는 8자보다 긴 매개변수에서만 발생합니다.
쿼리 문자열에 대한 jenkins 해시를 기반으로 체크섬을 계산합니다. 이 체크섬은 문자열 길이가 6자이므로 올바르게 전송됩니다. GET 요청은 체크섬 계산 직후 시스템으로 전송됩니다. 그렇기 때문에 문제가 자바 스크립트에 있어서는 안됩니다.
당사 서버의 액세스 로그를 분석해 보면 매개변수가 수신될 때 이미 섞인 것으로 나타났습니다.
지금까지 우리는 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% 미만) 공격의 형태일 가능성은 거의 없습니다. 클라이언트의 행동도 정상적인 것 같습니다.
레딧 게시물이 있습니다 (https://redd.it/3lxg26) 및 stackoverflow에 대한 게시물(https://stackoverflow.com/questions/32572264/what-might-be-shufflling-my-query-string-parameters-constructed-in-javascript) 비슷한 문제를 설명합니다.
이 문제에 대해 제안할 사람이 있나요? 아니면 응용 프로그램에서 비슷한 효과를 경험하고 있습니까?