Каким-то образом при наведении курсора на виджет «плюс + один» может появиться предложение типа подсказки, которое явно больше <iframe>элемента, в котором оно содержится. Я проверил DOM, чтобы подтвердить это. *
Так:
Какой? Как!?
Разве это не большая возможность для кражи кликов, если используется злонамеренно? (Представьте, что кто-то делает MITM для этих социальных виджетов!)
* Обновление: я увидел, что сообщение всплывающей подсказки было в секунду динамически создано iframe.
Другое дело, почему Google использует iframe? Почему бы просто не сгенерировать divна странице? Хорошо, потому что ссылка происходит от iframe, токен CSRF (подделка межсайтового запроса) может быть встроен в запрос, и родительский сайт не может прочитать этот токен и подделать запрос. Таким образом, iframeэто мера против CSRF, которая основывается на правилах происхождения наследования, чтобы защитить себя от злонамеренного родителя.
С точки зрения атаки это больше похоже на XSS (межсайтовый скриптинг), чем на UI-Redress. Вы предоставляете Google доступ к своему веб-сайту, и они могут захватить файлы cookie ваших пользователей или использовать их XmlHttpRequestsпротив вашего веб-сайта, если они того пожелают (но тогда люди будут судиться с ними за то, что они злонамеренные и богатые).
В этой ситуации вы ДОЛЖНЫ доверять Google, но Google не доверяет вам.
Отличный материал - я ценю ваш комментарий re: XSS, который имеет много смысла. Тем не менее, я все еще не уверен в чем-то. Содержание, о котором идет речь, выглядит так, как будто оно не входит в то <iframe>, что, по вашему мнению, может быть правдой (и объясните, как это возможно) Но, похоже, дело не в проверке DOM. И это представило бы мое имя и адрес Gmail злым родителям (если не обернуть за секунду iframe)!
Алан Х.
3
@ Алан Х. Да, они делают странные вещи с динамическими фреймами. Нажав на +1, вы получите окно, в котором вы добавите комментарий. Если вы загрузите firebug и осмотрите этот элемент, то получите iframe src для plusone.google.com/u/0 / _ / + / fastbutton? Url = ... Этот iframe содержит маркер CSRF для отправки в Google +.
ладья
В некоторых случаях вы можете избежать угона Cookie, установив их с помощью httponly.
Как объяснил Рук в своем ответе, <iframe> используется, чтобы запретить сайту, использующему код виджета Google +1, использовать CSRF-атаку для самостоятельного перехода по ссылке (и искусственного повышения рейтинга сайта +1). Это та часть, где Google не доверяет вам.
<iframe>
, что, по вашему мнению, может быть правдой (и объясните, как это возможно) Но, похоже, дело не в проверке DOM. И это представило бы мое имя и адрес Gmail злым родителям (если не обернуть за секундуiframe
)!Google использует iFrames для предотвращения «утечек стандартных DIV». Их диалог закрытия библиотеки делает то же самое. Вероятно, просто так, что другой контент не может стечь в кнопку +1. http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html .
источник