왜 구글 prepend 낼수있지않나 (1). 그들의 JSON 응답을?

왜 구글 prepend ',' 그 동안 (1) (전용) JSON 응답을?

예를 들어, # 39 의 on / off) 가 있는 동안 here& 선반가공 스케줄표의 구글 캘린더:

while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
  ['remindOnRespondedEventsOnly','true'],
  ['hideInvitations_remindOnRespondedEventsOnly','false_true'],
  ['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]

꼭 이래야겠어요 solaris. 이 생기지 않도록 하는 것은 아니지만, 모든 사람들이 'eval ()' 를 하고 있는 you& # 39; d '다음' 할 일은 정말 재장착합니다 동안 you& # 39; d 설정됩니다. Eval 이 것이 꼭 이래야겠어요 solaris. 사람들이 쓰기 방지 smartupdate 안전하다구요 JSON 구문 분석 코드입니다.

39, ve seen i& 몇 가지 다른 장소, 너무 많이 사용되고 있지만, 이 때문에 구글과 (메일, 일정, 연락처, etc.) [구글 문서도구], 2 충분히 풀코스 시작하여,,, '대신' &amp &amp &amp START&amp &amp &amp 시작하여, 구글 연락처 '동안 (1) 것으로 보인다. ,,, &amp &amp &amp START&amp &amp &amp '.

39 의 what& 건가?

질문에 대한 의견 (5)
해결책

[JSON 납치] 것을 (http://haacked.com/archive/2009/06/25/json-hijacking.aspx), (주) 는 JSON 있는 보안 문제를 정식으로 고정식입니다 에서 [2011년 이후 모든 주요 브라우저] [2] 와 ecma 스크립트 5.

나 예: url mail.google.com/json? '라고 하는 등 구글은 첫 번째 메시지를 받은 편지함' action = 메일박스와 되돌려줍니다 50 json 으로 형식입니다. # 39, AJAX 요청을 할 수 없는 다른 도메인과의 이글거리 웹 사이트를 can& afaq afnor 데이터를 통해 url 을 포함할 수 있지만, 동일-출처 정책 때문에 ',' 태그이고, script&gt &lt. 를 통해 해당 url 을 방문할 쿠키, [재정의을 글로벌 어레이입니다 구성자를 또는 액세서의 방법] (http://ejohn.org/blog/re-securing-json/) 라고 할 수도 있지만 메서드입니다 때마다 객체에는 어레이나 해시보다) 속성이 설정된 읽을 수 있게 되어, json 컨텐트입니다.

이 때 ' (1),,,', '또는' &amp &amp &amp BLAH&amp &amp &amp 이 문제가 발생하지 않습니다. ajax 요청을 한 http://support. 'mail.google.com' 할 수 있으며, 전체 텍스트 내용 액세스하려면 스트립 거두어. 하지만, ',' 태그번호 삽입에서 JavaScript 처리 없이 무턱대고 실행하므로 &lt script&gt, 그 결과 무한 루프에 인컨텍스트 또는 구문 오류입니다.

이 문제를 해결하지 사이트 간 요청 위조.

[2]: https://caniuse.com/ # 성과 = es5

해설 (50)

Json 응답을 edisclosure 것을 통해 피랍 사건.

이론적으로, HTTP 응답 컨텐트에서 의해 보호되고 어원이 같은 정책: 한 도메인의 도메인 정보가 다른 쪽 에서 페이지를 가져올 수 없습니다 (명시적으로 허용되지 않는 한).

공격자가 다른 도메인과의 요청할 수 있는 페이지를 대신하여 ',' 또는 'src = .&gt 스크립트입니다 &lt 사용하여, 예를 들어,' t get it, 태그, img&gt &lt can& # 39 대한 어떤 정보도 있지만, 그 결과 (헤더도, 컨텐츠).

따라서, 이 경우, s, t # 39 방문해야 attacker& 페이지 읽어야 couldn& # 39 에서 이메일을 gmail.com.

Json 은 JSON 컨텐츠를 사용할 때, 이 태그 요청할 수 있는 경우를 제외하고는 스크립트입니다 csetup 작업공간에서 attacker& # 39 의 Javascript 로 제어됩니다 환경. 만약 공격자가 어레이나 객체에는 구성자를 교체할 수 있는 어떤 것도 JSON 건설, 또는 다른 방법을 사용했던 객체에는 attacker& # 39 의 코드를 통과할 수 있을 것 "이라고 밝혔다.

단, JSON 실행되는 시점에 이 문제가 아니라, 당시 it& # 39 의 Javascript 로 분석되었다.

여러 가지 대응책입니다:

JSON 배반자들의 실행하므로 있다 합니다.

(1), JSON 데이터를 배치하여 '동시에' 는 JSON 데이터는 구글 기술서임을 전에 배반자들의 수행되 Javascript 로 합니다.

실제로 그 동안 전체 내용을 내려받습니다 미디어만을 합법적인 페이지, 스트립 (1) 로 구문 분석 ',', 그리고 나머지 JSON.

같은 기간 (,), 예를 들어, '페이스북' 에서 본 적이 있는 동일한 결과를 얻을 수 있습니다.

확실히 하는 Javascript 를 JSON 잘못되었습니다.

마찬가지로,,, JSON 같은 추가 전에 잘못된 토큰 ',' &amp &amp &amp &amp 수 있는지, &amp csetup START&amp, 결코 그렇지 않다.

항상 외부에 있는 객체를 JSON 반품하십시오.

이것은 [ 'OWASP' 권장됨 운행에서어떠한] (https://www.owasp.org/index.php/OWASP_AJAX_Security_Guidelines # Always_return_JSON_with_an_Object_on_the_outside) 는 JSON 데이터를 보호할 납치 및 덜 주는 하나.

따라서 이번 사태 이전, JSON 이 결코 Javascript 로 실행됨을 합니다.

아무 것도 유효한 객체를 JSON 둘러싸인 않을 때 Javascript 에서 유효하지 않습니다.

eval('{"foo":"bar"}')
// SyntaxError: Unexpected token :

그러나 이는 유효함 JSON:

JSON.parse('{"foo":"bar"}')
// Object {foo: "bar"}

그래서 항상 반품하십시오 합니다 객체를 JSON 의 최상위 수준에 수 없는 반면, 여전히 유효한 Javascript 기술입니까 유효함 JSON 응답을 합니다.

{} '는' 에서 언급한 것처럼 정보를 @hvd 빈 객체에는 유효함 자바스크립트, 아심과 객체에는 자체가 중요한 정보를 비워집니다 수 있습니다.

위에 메서드을 비교

이 때문에 덜 주는 방식으로 변경, OWASP 필요 없어 클라이언트 라이브러리 및 전송 유효함 JSON. 이는 과거 혹은 브라우저 버그 잘 모를 수 있지만, 향후 이 패배를 표시할지를. 같이 데이터를 분석할 수 있는 오류 언론에 의해 @oriadam 수 있을지는 불투명하다 통해 오류 처리 방관하겠나 (예를 들면 빈다우드로네로르).

Google& # 39 의 운행에서어떠한 单捞磐啊 위해서 클라이언트 라이브러리 및 자동 드 직렬화하지 지원할 수 있는 안전한 브라우저 버그 관련해서 고려할 수 있습니다.

두 방법 모두 서버측 변화가 필요한 피하기 위해 우연히 보내는 개발자가 취약한 JSON.

해설 (15)

39, 일부 다른 사이트 can& 할 수 있도록 하는 것이 이 못된 요령 시도하시려면 데이터의 수 밖에 없다. 예를 들어 교체 어레이입니다 구성자를 ',' 등 JSON 이 후, 태그, 악의적인 타사 사이트를 통해 uirl &lt script&gt 의 데이터를 JSON 응답을 빼앗을 수 있다. (1), 'a' 로 전환하여 동시에 시작할 때, 스크립트는 멈춤으로 한다.

별도의 파서를 사용하는 반면, JSON request 는 동일한 사이트 스어 무시하시겠습니까 '동안 (1),' 접두어입니다 파악할 수 있다.

해설 (10)

Json 응답을 될 것이 어려울 수 있는 하나의 HTML 문서를 타사 삽입하려면 ',' 태그이고, script&gt &lt. 태그는 script&gt &lt 점에 유의해야 합니다. ',' 어원이 같은 정책 대상에서 제외된다.

해설 (4)
  • 참고 *: 이전 (2019년 기준), 많은 취약점을 이어질 수 있는 최근의 브라우저에서 이 질문에 대해 설명한 예방 조치를 더 이상 문제가 있다. # 39, ll answer 남겨두십시오 i& 역사적 호기심을 전체 주제 아래, 근데 진짜로 대폭 변경된 2010년 이후 (!!) 이 때 물었다.

&lt hr>;

정보기술 (it) 에서 사용되는 것을 대상으로 간단한 ',' 태그이고, script&gt &lt. (사실 이 doesn& 막을 수 있지만, t # 39 이 불쾌한.) 그거 그냥 태그 (# 39, t 이쪽요 나쁜 녀석들 can& 스크립트입니다 자체 사이트와 적극적인 세션용으로 의존할 수 있도록 했다고 페치할 너회의 컨텐트입니다.

, &amp 편집하십시오 mdash; 참고 주석 (및 기타 대답). 이 문제를 함께 할 수있다, 특히 '객체에는 내장현 협업공간을 전복' 와 '어레이입니다' 구성자를. 그렇지 않으면 그 때, 공격자가 코드 구문 분석, JSON 속이는 초래할 수 있는 등 변경할 수 있습니다.

해설 (1)

이후, ',' 의 어원이 같은 정책을 면제됨 &lt script&gt 태그는 웹 보안 하는 동안 (1) ',' 세계 원하는거요 추가할 때 이를 JSON 응답을 남용 방지 ',' 태그이고, script&gt &lt.

해설 (0)