L'elemento consente di incorporare altre pagine Web direttamente nella pagina Web. Ma quando si usano gli iframe ci sono alcuni problemi di sicurezza e progettazione che non sono stati affrontati in HTML 4.01. HTML5 apporta tre nuovi attributi a questo elemento per aiutare a risolvere questi problemi:
L'attributo sandbox
Il sandbox
attributo del IFRAME
elemento è una funzionalità di sicurezza molto utile degli iframe. Quando lo inserisci in un IFRAME
elemento, si sta istruendo l'agente utente per disabilitare funzionalità che potrebbero causare un rischio per la sicurezza del sito e dei suoi utenti.
Per esempio:
sandbox = "" >
Indica al browser di disabilitare tutte le funzionalità che potrebbero rappresentare un rischio per la sicurezza. In particolare, i plugin non sono consentiti. I moduli non possono essere inviati. Gli script non verranno eseguiti e i link al di fuori del IFRAME
non sono consentiti. Infine, l'accesso ai cookie, all'archiviazione locale e ad altre pagine sullo stesso dominio (origine) non sono consentiti.
Quindi, usando il sandbox
valori delle parole chiave, è possibile riattivare alcune funzionalità. Queste parole chiave sono:
allow-forme
-Invia l'invio del moduloallow-stessa origine
- consente agli script di accedere a contenuti come i cookie dello stesso dominio di origineallow-scripts
-Eseguire gli script in questoIFRAME
allow-top-navigazione
-Ascondi ilIFRAME
collegamenti e script al_superiore
bersaglio
Non è una buona idea impostare entrambi i allow-scripts
e allow-stessa origine
parole chiave insieme sullo stesso IFRAME
. Se si esegue questa operazione, la pagina incorporata può quindi rimuovere completamente il file sandbox
attributo, annullando eventuali vantaggi di sicurezza.
L'attributo srcdoc
Il srcdoc
attributo è un attributo che offre al progettista Web un maggiore controllo sugli iframe e una maggiore sicurezza. Invece di collegarsi a una pagina Web con un URL diverso, il designer Web posiziona l'HTML che deve essere visualizzato in un IFRAME
dentro il srcdoc
attributo.
All'inizio, potresti pensare: "Com'è diverso dall'inserimento dell'HTML nella pagina?" E in un certo senso non è molto diverso. Ma devi tenere a mente una delle funzioni del IFRAME
elemento, che è quello di mantenere separati i dati non attendibili dal resto del sito.
Inserendo l'HTML creato da un'origine non affidabile, ad esempio un modulo, in un file IFRAME
puoi "sandbox" il contenuto non attendibile e visualizzarlo ancora sulla pagina. I commenti sul blog sono un esempio. La maggior parte dei blog ha solo un numero limitato di tag HTML che i commentatori possono usare nei loro commenti. Ma inserendo questi commenti in una sandbox IFRAME
usando il srcdoc
attributo, i commenti possono essere più robusti pur continuando a proteggere il sito nel suo complesso.
Sicurezza e Ifram
I due attributi di cui sopra forniscono sicurezza per il tuo IFRAME
elementi, ma non sono una prova contro tutti i siti malevoli. Se il sito dannoso può convincere un utente ad accedere direttamente ai contenuti ostili (come digitando l'URL nel proprio browser), può comunque essere attaccato.
Se possibile, è meglio impostare il contenuto che si trova nella sandbox IFRAME
come il text / html-sandbox
Tipo MIME.
L'attributo senza interruzioni
Il senza soluzione di continuità
attributo è un attributo booleano che indica al browser di visualizzare il IFRAME
come se fosse una parte del documento genitore. Se vuoi il tuo IFRAME
per visualizzare senza problemi, basta includere questo attributo nell'elemento:
senza soluzione di continuità >
Ma facendo il IFRAME
senza soluzione di continuità è più di un semplice sguardo, è anche il modo in cui la pagina interagisce con il fotogramma. Per esempio:
- Collegamenti nel
IFRAME
si aprirà nella finestra genitore, a meno che ilIFRAME
la pagina ha il bersaglio_SE STESSO
impostato. - CSS in
IFRAME
sarà aggiunto alla cascata dell'intero documento. - L'elemento principale del
IFRAME
pagina è considerata una figlia diIFRAME
. - La larghezza e l'altezza del
IFRAME
sono impostati in modo simile a come sarebbero impostati gli altri elementi a livello di blocco. - Quando il documento genitore viene visualizzato da uno strumento di rendering vocale come uno screen reader, il
IFRAME
sarebbe letto senza annunciarlo come documento separato. - Qualsiasi script sul documento principale influirebbe su
IFRAME
documento allo stesso modo. Ad esempio, se uno script elenca tutti i frame sulla pagina, i collegamenti inIFRAME
sarebbe elencato pure.
In altre parole, il senza soluzione di continuità
l'attributo fa molto di più che rimuovere i bordi dal IFRAME
. Se stai per impostare un IFRAME
per essere senza soluzione di continuità, dovresti essere molto sicuro dei contenuti in modo da non aggiungere alcun rischio per la sicurezza al tuo sito web incorporando un sito dannoso.