답변:
구글 +1 위젯은 웹 사이트에서 실행이 있다는 자바 스크립트 구축된다 iframe
. 이 JavaScript 위젯은 웹 사이트 컨텍스트에서 실행되므로 iframe 의 Origin 상속 규칙에 의해 제한되지 않습니다 . 따라서이 JavaScript 위젯은 단순 해 보이지만 상위 사이트에서 원하는 DOM 이벤트를 설정할 수 있습니다 iframe
.
또 다른 이유는 Google이 왜 iframe
? 왜 div
페이지에서를 생성하지 않습니까? 링크는에서 시작하므로 iframe
CSRF (교차 사이트 요청 위조) 토큰을 요청에 포함시킬 수 있으며 상위 사이트는이 토큰을 읽고 요청을 위조 할 수 없습니다. 따라서 이는 iframe
악의적 인 부모로부터 자신을 보호하기 위해 Origin Inheritance 규칙에 의존하는 안티 CSRF 측정입니다.
공격 관점에서 이것은 UI-Redress보다 XSS (cross-site scripting)와 비슷합니다. 귀하는 귀하의 웹 사이트에 대한 Google 액세스 권한을 부여하고 있으며 사용자가 원하는 경우 사용자 쿠키를 가로 채거나 XmlHttpRequests
귀하의 웹 사이트를 공격 할 수 있습니다.
이 경우 Google을 신뢰해야하지만 Google은 귀하를 신뢰하지 않습니다.
Google은 iFrame을 사용하여 "누설 표준 DIV"를 방지합니다. 클로저 라이브러리 대화 상자도 마찬가지입니다. 아마도 다른 내용이 +1 버튼으로 번지지 않도록하는 것일 수 있습니다. http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html .
<iframe>
사실 일 수 있습니다 (가능한 방법을 설명). 그러나 이것이 DOM 검사에서 나온 것처럼 보이지는 않습니다. 그리고 내 이름과 Gmail 주소가 악의적 인 부모에게 노출됩니다 (두 번째로 감싸지 않는 한iframe
)!