programing

어떤 json 답변이 )]}'으로 시작합니까?'

codeshow 2023. 9. 9. 10:20
반응형

어떤 json 답변이 )]}'으로 시작합니까?'

저는 특히 구글 서비스에서 일부 json 쿼리가 종결 순서로 시작하여 사각형 괄호로 지정된 배열 구조를 가지는 특이한 "json"을 반환한다는 것을 알게 되었습니다.

이게 무슨 아약스죠?js나 py같은 도서관이 있나요? 파싱하는거?

좀 더 구체적인 예를 들자면,

>>> import json
>>> import urllib2
>>> url=urllib2.urlopen("https://plus.google.com/u/0/_/socialgraph/lookup/visible/?o=%5Bnull%2Cnull%2C%22114423404493486623226%22%5D")
>>> url.readline()
")]}'\n"
>>> url.readline()
'\n'
>>> url.readline()
'[["tsg.lac",[]\n'

그리고 거기서부터 전형적인 배열이 뒤따릅니다.따라서 전체 답변은 두 줄로 된 "헤더"와 배열입니다. 하지만 "헤더"는 매우 혼란스러워서 표준 아약스 라이브러리에서 나온 것인지 아니면 이 사람들의 아이디어인지 궁금합니다.

아, Chrome의 개발자 도구를 사용하여 실제 쿼리를 조사하면 동일한 것을 볼 수 있습니다.그래서 나는 그것이 질문의 유물이 아니라 실제 답이라고 믿게끔 유도됩니다.

메시지의 처음에 잘못된 JSON을 사용하는 것은 CSRF와 자바스크립트의 배열 구성자에 대한 까다로운 공격의 조합을 물리치는 한 가지 방법입니다.

해당 URL이 올바른 랩핑되지 않은 배열을 반환한 경우 방문한 모든 사이트에서 배열 기능을 오버로드하고 해당 Google+ URL에 대한 스크립트 참조를 페이지에 배치/주입하며 페이지를 로드할 때 개인/보안 데이터를 수집할 수 있습니다.

구글의 클라이언트 측 코드는 잘못된 JSON을 파싱하기 전에 제거할 수 있습니다. 이 코드는 원시 응답에 접근할 수 있는 전통적인 XHR 요청을 사용하기 때문입니다.원격 사이트는 스크립트 요소 주입을 통해서만 액세스할 수 있으며 브라우저가 데이터를 구문 분석하기 전에는 데이터를 사전 처리할 수 없습니다.후자는 JSONP가 작동하는 방식과 비슷하며, 어레이 구성자가 자신도 모르게 콜백 기능이 됩니다.

GET 요청에 응답하여 JSON 어레이를 반환하는 많은 프로필 사이트에서도 유사한 접근 방식을 볼 수 있습니다.Facebook은 그들의 것을 사용합니다.for (;;);,예를들면.만약 당신이 그 페이스북 API들에 CSRF 공격을 사용하려고 한다면, 브라우저는 페이스북의 개인 API를 참조하여 단지 원격 사이트에 무한 루프를 입력합니다.Facebook.com 에서 클라이언트 측 코드는 JSON.parse()를 실행하기 전에 해당 코드를 제거할 수 있습니다.

언급URL : https://stackoverflow.com/questions/6572295/what-kind-of-json-answer-starts-with

반응형