Wie brechen Google+ +1 -Widgets aus ihrem Iframe aus?
-
26-10-2019 - |
Frage
Irgendwie kann es ein Tooltip-Deal einführen, das eindeutig größer ist als die <iframe>
Element, in dem es enthalten ist. Ich habe das DOM inspiziert, um dies zu bestätigen.*
So:
Was? Wie!?
Ist dies keine massive Gelegenheit zum Klicken, wenn es böswillig verwendet wird? (Stellen Sie sich vor, jemand macht ein MITM für diese sozialen Widgets!)
*Update: Ich habe gesehen, dass die Tooltip-y-Nachricht in a war zweite, dynamisch erstellt iframe
.
Lösung
Das Google +1 -Widget ist JavaScript, das auf Ihrer Website ausgeführt wird das baut eine auf iframe
. Dieses JavaScript -Widget wird im Kontext Ihrer Website ausgeführt und wird daher nicht durch die eingeschränkt Ursprungs -Inheritanzregeln für IFrames. Daher kann dieses JavaScript -Widget alle DOM -Ereignisse auf der übergeordneten Site festlegen, obwohl es einfach einfach zu sein scheint iframe
.
Eine andere Sache, warum Google eins verwendet iframe
? Warum nicht einfach eine generieren div
auf der Seite? Nun, denn der Link stammt aus dem iframe
, Ein CSRF-Token (Cross-Site-Anfrage-Forgery) kann in die Anfrage eingebettet werden, und die übergeordnete Website kann dieses Token nicht lesen und die Anfrage schmieden. Also die iframe
ist eine Anti-CSRF-Maßnahme, die sich auf die Ursprungs-Inersitanzregeln stützt, um sich vor einem böswilligen Elternteil zu schützen.
Aus Angriffssicht ist dies eher wie XSS (Cross-Site-Skripting) als ui-reduziert. Sie geben Google Zugriff auf Ihre Website und sie können die Cookie's Ihrer Benutzer entführen oder ausführen XmlHttpRequests
gegen Ihre Website, wenn sie dies wählen (aber dann würden die Leute sie verklagen, weil sie böswillig und wohlhabend sind).
In dieser Situation müssen Sie Google vertrauen, aber Google vertraut Ihnen nicht.
Es gibt Möglichkeiten, die Auswirkungen der Privatsphäre dieser Webbugs zu mildern.
Andere Tipps
Google verwendet IFrames, um "undichte Standard -Divs" zu verhindern. Ihr Dialog mit der Verschlussbibliothek macht dasselbe. Es ist wahrscheinlich nur so, dass andere Inhalte nicht in die +1 -Taste bluten können. http://clous-library.googlecode.com/svn/trunk/clous/goog/demos/dialog.html.