Feature Policy

La Funzionalità di policy consente agli sviluppatori web di abilitare, disabilitare e modificare il comportamento di certe funzionalità e API all'interno del browser . E' simile a  Content Security Policy ma controlla le funzionalità anzichè il comportamento di sicurezza.

The Feature-Policy l'intestazione è stata rinominata in Permissions-Policy nella specifica, ed eventualmente questo articolo verrà aggiornato per riflettere tale modifica.

In poche parole

Feature Policy(politiche sulla funzionalità) fornisce un metodo per dichiarare esplicitamente quale funzione viene utilizzata(o non utilizzata) in tutto il sito web. Ciò permette di mantenere le migliori condizioni applicative, anche se la base del codice evolve nel tempo — come nel caso dell'utilizzo più sicuro di contenuti di terze parti — limitandosi alle funzionalità disponibili.

Con le Feature Policy, ti rivolgi ad un insieme di "politiche" affinchè il browser applichi funzionalità specifiche utilizzate nel sito web. Queste politiche limitano le API a cui il sito può accedere o modificare il comportamento predefinito del browser per alcune funzionalità.

Esempi di quello che puoi fare con le Feature Policy:

  • Modifica il comportamento predefinito della riproduzione automatica su dispositivi mobili e video di terze parti.
  • Impedisce a un sito di utilizzare API sensibili come quelle che utilizzano fotocamera o microfono.
  • Permette agli iframes di utilizzare (API a schermo intero)fullscreen API.
  • Blocca l'utilizzo di API absolete come: synchronous XHR e document.write().
  • Assicurarsi che le immagini siano dimensionate correttamente e non siano troppo grandi per la visualizzazione.

Concetti e utilizzo

Le Feature Policy permettono di controllare quali origini possono usare le funzionalità, sia nella pagina di primo livello che nei frame incorporati. In sostanza, scrivere una policy, che è un elenco autorizzato di origini per ciascuna funzionalità. per ogni funzionalità controllata dalle Feature Policy, la funzionalità è abilitata solamente nel documento o frame corrente se la sua origine corrisponde all'elenco di origini autorizzate.

Per ognuna delle funzionalità controllata dalle policy, il browser conserva un elenco di origini per la quale la funzionalità è abilitata, è noto come allowlist(elenco consentito). Se non specifichi una policy per una funzionalità, verrà utilizzato un elenco di autorizzazioni predefinito. L'elenco predefinito è specifico per ciascuna funzionalità.

Scrivere una Politica

Una politica viene descritta utilizzando una serie di direttive politiche individuali. Una direttiva politica è una combinazione di un nome di una funzionalità definita e un elenco di origini consentite che possono utilizzare la funzionalità.

Specificare la tua politica

 Le Feature Policy offrono due modi per specificare le politiche per controllare le funzionalità:

La differenza principale tra intestazione HTTP e l'attributo allow è che l'attributo allow controlla solo le funzionalità all'interno di un iframe. L'intestazione controlla caratteristiche della risposta e qualsiasi contenuto incorporato nella pagina.

Per maggiori dettagli guardare Using Feature Policy.

Inferring the policy

Gli script possono eseguire query in modo da ottenere delle informazioni sulle policy delle funzionalità tramite:

FeaturePolicy situato in  Document.featurePolicyHTMLIFrameElement.featurePolicy.

Tipi di funzionalità controllate da criteri

Sebbene le Feature Policy forniscano il controllo di più funzionalità utilizzando una sintassi coerente, il comportamento delle funzionalità controllate dalle politiche varia, e dipende da diversi fattori.

Il principio generale è che dovrebbe esserci un modo intuitivo o univoco per gli sviluppatori web di rilevare o gestire il caso in cui la funzione è disablitata. Le nuove funzionalità introdotte possono avere un'API esplicita per segnalare lo stato. Le funzionalità esistenti che successivamente si integrano con le Feature Policy utilizzeranno in genere i meccanismi esistenti. Alcuni metodi includono:

  • Restituisce "permission denied" per le APi javascript che richiedono permessi per autorizzazioni utenti.
  • Restituisce  false o errore da una API javascript esistente che fornisce l'accesso alla funzionalità.
  • Modifica i valori predefiniti o le opzioni che controllano il comportamento della funzionalità.

L'attuale insieme di funzionalità gestite dalle politiche si dividono in due grandi gruppi:

  • Applicazione delle migliori pratiche per una buona esperienza utente.
  • Fornire un controllo granulare su funzionalità sensibili o potenti.

Le abitudini migliori per una buona esperienza utente

Sono disponibili diverse funzionalità controllate da criteri per applicare le migliori pratiche per fornire una buone prestazioni e esperienze utente.

Nella maggior parte dei casi le funzionalità controllate dai criteri, rappresentano funzionalità che, se utilizzate, avranno un impatto negativo sull'esperienza utente. Per evitare di interropere il contenuto web esistente, l'impostazione predefinita per tali funzionalità, è consentirne l'utilizzo da parte di tutte le origini. Le procedure consigliate quindi, vengono applicate utilizzando criteri che disabilitano la funzionalità di altri criteri. Per ulteriori dettagli vedere "Enforcing best practices for good user experiences".

Le funzionalità includono:

  • Layout-inducing animations
  • Formato delle immagini precedenti
  • Immagini di grandi dimensioni
  • Scripts sincronizzati
  • Synchronous XMLHTTPRequest
  • immagini non ottimizzate
  • supporti non dimensionati

Controllo granulare su alcune funzionalità

Il Web fornisce funzionalità e API che potrebbero comportare rischi per la privacy o la sicurezza se utilizzati in modo improprio. In alcuni casi potresti voler limitare il modo in cui questa funzionalità viene utilizzata su un sito web. Esistono funzionalità controllate da criteri per consentire l'abilitazione/disabilitazione della funzionalità per origini o frame specifici all'iterno di un sito web. Dove disponibile la funzionalità si integra con l'API di autorizzazione o con i meccanismi specifici di funzionalità per verificare se la funzione è disponibile.

Le funzionalità includono (guarda Features list):

  • Accelerometro
  • Sensore di luminosità ambientale
  • Riproduzione automatica
  • Fotocamera
  • Media crittografati
  • Schermo intero
  • Geolocalizzazione
  • Giroscopio
  • Magnetometro
  • Microfono
  • Midi
  • Richieste di pagamento
  • Picture-in-picture
  • USB
  • API di condivisione web
  • VR / XR

Examples

Specifiche

Specifica Stato Commento
Permissions Policy
The definition of 'Feature-Policy' in that specification.
Editor's Draft Definizione iniziale. Definisce l'intestazione Feature-Policy . LE direttive sono definite nelle specifiche per le funzionalità che controllano. Vedere le pagine delle singole direttive per i dettagli.

Browser compatibility

BCD tables only load in the browser

Guarda anche: