Google+ +1 위젯은 iframe에서 어떻게 벗어나나요?


145

어떻게 든 Google+ 플러스 원 위젯 위에 마우스 커서를 올리면 툴팁 유형 거래가 <iframe>포함되어 있습니다. 이것을 확인하기 위해 DOM을 검사했습니다. *

iframe 경계

그래서:

  1. 뭐? 어떻게!?

  2. 악의적으로 사용되는 경우 이것이 클릭 재킹의 큰 기회가 아닙니까? (이 소셜 위젯에서 MITM을 수행하는 사람이 있다고 상상해보십시오!)

* 업데이트 : 내가 본 것은 툴팁 -y 메시지가 두 번째로 동적으로 생성 되었다는 것입니다 .iframe

답변:


181

구글 +1 위젯은 웹 사이트에서 실행이 있다는 자바 스크립트 구축된다 iframe. 이 JavaScript 위젯은 웹 사이트 컨텍스트에서 실행되므로 iframeOrigin 상속 규칙에 의해 제한되지 않습니다 . 따라서이 JavaScript 위젯은 단순 해 보이지만 상위 사이트에서 원하는 DOM 이벤트를 설정할 수 있습니다 iframe.

또 다른 이유는 Google이 왜 iframe? 왜 div페이지에서를 생성하지 않습니까? 링크는에서 시작하므로 iframeCSRF (교차 사이트 요청 위조) 토큰을 요청에 포함시킬 수 있으며 상위 사이트는이 토큰을 읽고 요청을 위조 할 수 없습니다. 따라서 이는 iframe악의적 인 부모로부터 자신을 보호하기 위해 Origin Inheritance 규칙에 의존하는 안티 CSRF 측정입니다.

공격 관점에서 이것은 UI-Redress보다 XSS (cross-site scripting)와 비슷합니다. 귀하는 귀하의 웹 사이트에 대한 Google 액세스 권한을 부여하고 있으며 사용자가 원하는 경우 사용자 쿠키를 가로 채거나 XmlHttpRequests귀하의 웹 사이트를 공격 할 수 있습니다.

이 경우 Google을 신뢰해야하지만 Google은 귀하를 신뢰하지 않습니다.

이러한 웹 버그의 개인 정보 보호 영향을 완화하는 방법이 있습니다 .


좋은 점 – XSS는 여러분의 의견에 감사드립니다. 그러나 나는 아직도 무언가에 대해 확신하지 못한다. 문제의 콘텐츠가에 포함되지 않은 것 같습니다.이 내용은 <iframe>사실 일 수 있습니다 (가능한 방법을 설명). 그러나 이것이 DOM 검사에서 나온 것처럼 보이지는 않습니다. 그리고 내 이름과 Gmail 주소가 악의적 인 부모에게 노출됩니다 (두 번째로 감싸지 않는 한 iframe)!
Alan H.

3
@Alan H. 네, 역동적 인 iframe으로 기괴한 일을하고 있습니다. +1을 클릭하면 댓글을 추가 할 수있는 창이 나타납니다. Firebug를로드하고 해당 요소를 검사하면 plusone.google.com/u/0/_/+/fastbutton?url=에 대한 iframe src가 표시됩니다.이 iframe에는 google +에 제출하기위한 CSRF 토큰이 포함되어 있습니다.
rook

경우에 따라 http 전용으로 쿠키를 설정하여 쿠키의 도용을 피할 수 있습니다.
seppo0010

1
@ seppo0010 그래도 XHR을 멈추지 않습니다.
루크

3

Google은 iFrame을 사용하여 "누설 표준 DIV"를 방지합니다. 클로저 라이브러리 대화 상자도 마찬가지입니다. 아마도 다른 내용이 +1 버튼으로 번지지 않도록하는 것일 수 있습니다. http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html .


루크는 자신의 답변에서 설명했듯이 <iframe>은 Google +1 위젯 코드를 사용하는 사이트가 CSRF 공격을 사용하여 링크 자체를 클릭하지 않고 사이트의 +1 등급을 인위적으로 개선하는 것을 방지하는 데 사용됩니다. 그것이 구글이 당신을 믿지 않는 부분입니다.
Mikko Rantalainen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.