In che modo i widget Google+ +1 escono dal loro iframe?


145

In qualche modo, passare con il mouse su un widget Google+ plus-one può introdurre un accordo di tipo tooltip che è chiaramente più grande <iframe>dell'elemento in cui è contenuto. Ho verificato il DOM per confermarlo. *

confini iframe

Così:

  1. Che cosa? Come!?

  2. Non è questa un'enorme opportunità per il clickjacking, se usato in modo dannoso? (Immagina qualcuno che fa un MITM per questi widget sociali!)

* Aggiornamento: Quello che ho visto è stato che il messaggio tooltip-y era in un secondo, creato dinamicamente iframe.

Risposte:


181

Il widget di Google +1 è JavaScript che viene eseguito sul tuo sito Web che sta creando un iframe. Questo widget JavaScript è in esecuzione nel contesto del tuo sito Web e pertanto non è vincolato dalle Regole di eredità di origine per iframe . Pertanto, questo widget JavaScript può impostare qualsiasi evento DOM desiderato sul sito padre anche se sembra essere solo un semplice iframe.

Un'altra cosa, perché Google sta usando un iframe? Perché non generare semplicemente un divnella pagina? Bene, poiché il collegamento ha origine dal iframetoken, un token CSRF (contraffazione richiesta tra siti) può essere incorporato nella richiesta e il sito padre non può leggere questo token e forgiare la richiesta. Quindi si iframetratta di una misura anti-CSRF che si basa sulle regole di ereditarietà di origine per proteggersi da un genitore malintenzionato.

Dal punto di vista dell'attacco, è più simile a XSS (cross-site scripting) che UI-Redress. Stai dando a Google l'accesso al tuo sito Web e potrebbero dirottare i cookie dei tuoi utenti o comportarsi XmlHttpRequestscontro il tuo sito Web se lo desiderano (ma le persone li farebbero causa per essere dannosi e ricchi).

In questa situazione, DEVI fidarti di Google, ma Google non si fida di te.

Esistono modi per mitigare l'impatto sulla privacy di questi bug web .


Grandi cose - apprezzo il tuo commento su: XSS, che ha molto senso. Eppure non sono ancora sicuro di qualcosa. Il contenuto in questione sembra non essere all'interno del <iframe>, che tu suggerisci potrebbe essere vero (e spiegare come è possibile). Ma non sembra che sia così, dall'ispezione del DOM. E esporrebbe il mio nome e il mio indirizzo Gmail a genitori malvagi (se non racchiusi in un secondo iframe)!
Alan H.

3
@Alan H. Sì, stanno facendo cose bizzarre con iframe dinamici. Se fai clic sul +1 otterrai la finestra in cui aggiungi un commento. Se carichi firebug e ispezioni quell'elemento, otterrai un iframe src per plusone.google.com/u/0 / _ / + / fastbutton? Url = ... Questo iframe contiene il token CSRF per l'invio a google +.
torre

In alcuni casi, puoi evitare il dirottamento di Cookie impostandoli con httponly.
seppo0010,

1
@ seppo0010 sì, ma ciò non ferma gli XHR.
torre l'

3

Google utilizza iFrame per prevenire "DIV standard con perdite". La finestra di dialogo della libreria di chiusura fa la stessa cosa. Probabilmente è solo per impedire che altri contenuti vengano scaricati nel pulsante +1. http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/dialog.html .


Come spiegato da Rook nella sua risposta, <iframe> viene utilizzato per impedire al sito che utilizza il codice widget di Google +1 di utilizzare l'attacco CSRF per fare clic sul collegamento da solo (e migliorare artificialmente la valutazione +1 del sito). Questa è la parte in cui Google non si fida di te.
Mikko Rantalainen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.