Problemi di sicurezza che utilizzano iframe

5

Stiamo cercando di passare agli ifram a causa di problemi tecnici. Passando agli iframe sarà più facile gestire i problemi tecnici. Ma non siamo completamente sicuri delle implicazioni di sicurezza degli iframe.

Il nostro sito web è reso tramite SSL e l'utente potrebbe aver bisogno di fare clic sui collegamenti anche su SSL dal nostro sito.

  1. È possibile aprirlo in un browser completamente nuovo e continuare a farlo nessun problema di sicurezza?
  2. Quali sono le cose che dovremmo tenere a mente assicurati che il nostro sito rimanga sicuro durante l'utilizzo degli iframe?
posta Mick 01.04.2012 - 08:07
fonte

4 risposte

4

Supponendo che gli iframe abbiano la stessa origine in modo da non dover rimuovere l'intestazione X-Frame-Options: sameorigin , o che Clickjacking non è un problema in loro. (È specificato un token permesso, ma i browser più vecchi non lo supportano).

Il principale problema con l'utilizzo del frame è che potresti finire con visualizzare contenuti non attendibili , mentre l'utente vede ancora il tuo dominio nella barra degli indirizzi. Ad esempio, potrebbe esserci un link che manca dell'attributo target="_top" o potresti voler visualizzare intenzionalmente contenuti stranieri.

Questo contenuto estraneo potrebbe ad esempio visualizzare un modulo "La tua sessione è scaduta, effettua nuovamente il login" con il tuo layout. La barra degli indirizzi mostrerà il tuo dominio.

    
risposta data 01.04.2012 - 11:16
fonte
3

Un problema di sicurezza comune con iframe è clickjacking . Questo problema viene comunemente mitigato utilizzando l'intestazione della risposta http x-frame-options . È importante limitare quali pagine possono essere iframe '. Le pagine che consentono all'utente di modificare la propria password, modificare le impostazioni devono essere limitate, avere un'opzione x-frame di "negare".

Ci sono importanti vantaggi per la sicurezza dall'uso di un iframe. Ad esempio i pulsanti di Google+ si basano sull'origine regole di ereditarietà per iframe per sicurezza .

    
risposta data 01.04.2012 - 08:29
fonte
3

Gli iframe possono introdurre molti problemi di sicurezza a seconda di come sono implementati e dove viene offerto il contenuto.

Ecco alcuni dettagli sulle opzioni iFrame menzionate da Rook

Consenti forme

Se questo è abilitato, iFrame potrebbe phishing per le informazioni, rappresentare un modulo di accesso per il tuo sito web, ecc.

Consenti-scripts Se abilitare gli script è abilitato, non è necessario impostare i moduli di autorizzazione, dal momento che un modulo può essere creato nel DOM tramite Javascript

Se autorizzi gli script in un iFrame, potrebbe potenzialmente eseguire attacchi DoS, aprire finestre di dialogo del browser o eseguire l'automazione sulla pagina che potrebbe esporre informazioni ad altri (attributo referer) o caricare oggetti esterni.

allow-top-navigazione

Questo diritto consente all'iFrame di agire come sito incorporato o di utilizzare le credenziali dell'utente.

allow-same-origin

Questo attributo è inteso per visualizzare documenti HTML non elaborati (ad esempio e-mail HTML) inalterati dalla sorgente. Il problema è che se l'URL è prevedibile e l'utente malintenzionato può chiedere all'utente di visualizzare direttamente l'iFrame, le proprietà della sandbox andranno perse. Peggio ancora, la pagina web aperta potrebbe attraversare l'oggetto opener e scoprire proprietà sulla pagina di origine.

Infine, vi è un tipo MIME proposto chiamato text/html-sandboxed per il contenuto che deve essere sempre visualizzato in un ambiente sandbox, ma molti browser lo interpretano male e visualizzano i dati in modi insoliti (di solito una cosa negativa).

risposta data 30.03.2013 - 05:48
fonte
1

Dovresti implementare due cose per proteggere quell'applicazione:

1) Aggiungi le intestazioni dell'opzione X-frame, ovvero in apache:

echo "Header always append X-Frame-Options SAMEORIGIN" >> /etc/apache2/httpd.conf && a2enmod headers && service apache2 restart

2) Aggiungi il codice Javascript di Framebusting per i vecchi browser.
Attenzione! if (_top == _self) è un codice BAD Framebusting!

Guarda qui , ci sono molti esempi di framebusting (video OWASP).

    
risposta data 01.04.2012 - 15:35
fonte

Leggi altre domande sui tag