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: