Verifica dell'hash figlio iFrame del contenuto iFrame principale

8

Considera il seguente scenario:

Alice desidera visitare il sito Web di Victor mentre era al lavoro presso Initech. Il sito Web di Victor è ospitato su un sistema di nomi di dominio alternativo a cui il DNS di Initech non fa il peer. Eve (che desidera facilitare lo scambio di conoscenza libero e aperto) ospita una pagina web contenente JS che esegue la risoluzione del nome di dominio e il mascheramento dell'URL in modo che quando Alice visita victor.eve.tld un iFrame carica victor.alt in base all'indirizzo IP statico che Victor ha designato nel record victor.alt DNS.

Per mascherare il nome di dominio senza interruzioni, Victor deve inserire l'autorizzazione CORS nelle intestazioni dal suo sito per ballare attorno alla politica di origine singola. Tuttavia, Victor sospetta che Michael stia cercando di hackerare il server Web di Eve e di creare JS dannoso nella pagina web di Eve (il genitore dell'iFrame). Victor vuole verificare che Michael non abbia modificato il contenuto del frame principale prima di abilitare l'autorizzazione CORS.

Victor ha una copia del sito di Eve e può includere gli hash del materiale senza contattare il server di Eve, quindi se ha accesso in lettura, può abbinare il contenuto. Micheal non ha accesso ai server Initech e le connessioni da entrambi i siti sono protette tramite TLS: supponiamo che Micheal non possa effettuare un attacco man-in-the-middle.

È possibile che iFrame verifichi il contenuto della finestra genitore:

  • utilizzando la qualsiasi configurazione CORS?
  • consentendo l'accesso in sola lettura?
  • limitando l'accesso della finestra genitore al contenuto di iFrame?

Esistono precedenti discussioni riguardanti verifica JS lato client da una cache non affidabile (con una connessione trusted, senza MtM) ma questa situazione richiede la convalida dal materiale che viene recuperato. Ci sono anche numerosi post riguardanti l'uso di codice iFrames to sandbox non affidabile . Tuttavia, le domande di sandboxing di iFrame tendono a ruotare attorno a una finestra genitore che si fida del bambino, così come la maggior parte della letteratura esterna sull'argomento (frame-busting, ecc.).

Inoltre, il server di Eve non può partecipare attivamente al processo: può solo servire file statici HTML, JS e CSS. Victor non può fornire informazioni tramite il server di Eve, può solo interagire con i propri server di terze parti.

    
posta Indolering 05.09.2013 - 01:17
fonte

1 risposta

2
  • utilizzando una configurazione CORS?

Se Eve imposta la sua intestazione CORS su Access-Control-Allow-Origin "victor.alt" Victor può verificare il contenuto dell'HTML che recupera e verifica anche tutti gli script di riferimento.

  • consentendo l'accesso in sola lettura?
  • limitando l'accesso della finestra genitore al contenuto di iFrame?

Nessuno dei due esiste, un iFrame non può leggere il contenuto di un altro iFrame a meno che non si trovino nello stesso dominio.

Tuttavia, è possibile inviare qualsiasi informazione utente che si desidera mantenere privata da Victor in un iFrame in modalità sandbox e utilizzando window.postMessage per comunicare tra i frame. Victor può monitorare l'attività tra i due per assicurarsi che nessuna informazione sia trapelata.

    
risposta data 09.09.2013 - 13:37
fonte

Leggi altre domande sui tag