0Pricing
HTML Academy · Lezione

Sandbox degli iframe e Permissions Policy

Limitare i contenuti incorporati con sandbox e Permissions-Policy

Sandbox degli iframe e Permissions Policy è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Perché usare gli iframe sandbox?

I contenuti non attendibili in un iframe, come widget di terze parti, anteprime di HTML inviato dagli utenti e giochi incorporati, non dovrebbero disporre di tutte le funzionalità del browser. L'attributo sandbox limita ciò che l'iframe può fare, riducendo i danni nel caso si rivelasse dannoso.

sandbox vuoto = restrizioni massime

<iframe sandbox src="..."> senza alcun valore applica tutte le restrizioni: niente script, moduli, popup, navigazione di primo livello o plugin; l'iframe viene trattato come un'origine unica. Lo usi come punto di partenza e aggiunga solo ciò di cui il contenuto incorporato ha bisogno.

Aggiunta delle funzionalità

I token di sandbox riattivano funzionalità specifiche: sandbox="allow-scripts allow-same-origin" consente l'esecuzione di script e l'accesso alla stessa origine. Ogni token allenta una restrizione; combini il set minimo effettivamente necessario all'iframe.

<iframe sandbox="allow-scripts allow-same-origin" src="https://embed.example.com/widget"></iframe>

Token comuni

allow-scripts abilita JS. allow-forms abilita l'invio dei moduli. allow-popups abilita window.open. allow-same-origin evita di trattare l'iframe come un'origine unica, cosa necessaria per localStorage. allow-top-navigation consente di navigare nella finestra principale.

La combinazione pericolosa

Combinare allow-scripts con allow-same-origin per un iframe ospitato sulla stessa origine concede all'iframe accesso completo alla propria origine, inclusa la possibilità di rimuovere la propria sandbox. Li combini solo per contenuti attendibili; per quelli non attendibili, ometta allow-same-origin.

Permissions Policy

Permissions Policy, precedentemente chiamata Feature Policy, controlla quali API del browser, come fotocamera, microfono, geolocalizzazione, schermo intero e riproduzione automatica, possono essere utilizzate dalla pagina e dai suoi iframe. La imposti nel documento principale: Permissions-Policy: geolocation=() blocca la geolocalizzazione ovunque.

Concessione dei permessi per iframe

L'attributo allow di un iframe sovrascrive la policy del documento principale per quell'iframe: <iframe allow="camera; microphone"> consente l'uso di queste API nell'iframe anche quando la policy predefinita del documento principale nega tale accesso.

<iframe
  src="https://video-call.example.com"
  allow="camera; microphone; fullscreen"
  sandbox="allow-scripts allow-same-origin">
</iframe>

Elenco dei permessi

Le specifiche includono un elenco in continua evoluzione: fotocamera, microfono, geolocalizzazione, accelerometro, giroscopio, magnetometro, pagamenti, usb, midi, schermo intero, riproduzione automatica, picture-in-picture e decine di altre funzionalità. Verifichi l'elenco e neghi esplicitamente tutto ciò di cui la pagina non ha bisogno.

Segnalazione delle violazioni della policy

Permissions-Policy segnala le violazioni a un endpoint configurato, come report-uri di CSP. Usi questa funzionalità durante una migrazione: abiliti una policy rigorosa, osservi cosa si interrompe, quindi la allenti gradualmente per le funzionalità legittime.

Isolamento dell'origine

Per le pagine sensibili, imposti Cross-Origin-Opener-Policy: same-origin e Cross-Origin-Embedder-Policy: require-corp. In questo modo la pagina viene isolata dalle finestre cross-origin, proteggendola dagli attacchi temporali in stile Spectre e abilitando SharedArrayBuffer.

Difesa in profondità

Sandbox + Permissions Policy + CSP + COOP/COEP agiscono insieme. Ciascuno protegge da una diversa classe di attacchi. Incorporare contenuti di terze parti è abbastanza rischioso da rendere insufficiente qualsiasi singola mitigazione: le combini affinché un'elusione di una venga rilevata da un'altra.

Test

Usi i pannelli Network e Issues di Chrome DevTools per individuare le violazioni di sandbox e dei permessi. Molte violazioni sono silenziose: l'API restituisce semplicemente undefined o rifiuta la promise. Endpoint di segnalazione espliciti aiutano a scoprirle in produzione.

Verifica delle conoscenze

Perché la combinazione sandbox="allow-scripts allow-same-origin" può essere pericolosa per un iframe ospitato sulla propria origine?

Riepilogo

Applichi sandbox agli iframe per impostazione predefinita e aggiunga solo i token necessari al contenuto. Eviti allow-scripts+allow-same-origin per i contenuti non attendibili. Usi Permissions Policy per negare le API potenti a livello di sito e l'attributo allow dell'iframe per concedere eccezioni. Combini il tutto con CSP e COOP/COEP per una difesa in profondità.

Domande Frequenti

La lezione «Sandbox degli iframe e Permissions Policy» è gratuita?

Sì — il testo completo di «Sandbox degli iframe e Permissions Policy» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «Sandbox degli iframe e Permissions Policy»?

Limitare i contenuti incorporati con sandbox e Permissions-Policy Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Sandbox degli iframe e Permissions Policy»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Content Security Policy: meta http-equiv
  2. XSS tramite innerHTML e come prevenirlo
  3. Sandbox degli iframe e Permissions Policy
  4. HTTPS e Subresource Integrity
← Torna a HTML Academy