Ster inactiefSter inactiefSter inactiefSter inactiefSter inactief
 

Feature-Policy

Wat is Feature Policy? Een inleiding tot een nieuwe Security Header

Binnenland: Tech HTTP Headers Feature-Policy: Feature Policy stelt web ontwikkelaars in staat om het gedrag van bepaalde functies en API's in de browser selectief in te schakelen, en uit te schakelen en aan te passen. Feature Policy biedt een mechanisme om expliciet aan te geven welke functionaliteit wordt gebruikt (of niet wordt gebruikt), overal op uw website. Hiermee kunt u best practices vastleggen, zelfs als de codebase in de loop van de tijd evolueert, maar ook om veiliger inhoud van derden samen te stellen, door te beperken welke functies beschikbaar zijn.

Feature Policy Functievoorschrift

Met functievoorschrift meldt u zich aan bij een reeks 'Feature-Policy' die de browser moet toepassen op specifieke functies die in een website worden gebruikt. Dit beleid beperkt de API's waartoe de site toegang heeft of wijzigt het standaardgedrag van de browser voor bepaalde functies.

Voorbeelden van wat u kunt doen met het Feature Policy:

  • Wijzig het standaardgedrag van automatisch spelen op mobiele en video's van derden.
  • Beperk een site van het gebruik van gevoelige API's zoals een camera of microfoon.
  • Sta iframes toe om de API voor volledig scherm te gebruiken.
  • Blokkeer het gebruik van verouderde API's zoals synchrone XHR en document.write ().
  • Zorg ervoor dat de afbeeldingen de juiste grootte hebben en niet te groot zijn voor de viewport.

Concepten en gebruik Feature Policy

Met Feature Policy, kunt u bepalen welke oorsprong welke functies kan gebruiken, zowel op de bovenste pagina als in ingesloten frames. In essentie schrijft u een policy, dat een allowlist lijst met bronnen voor elke functie is. Voor elke functie die wordt bepaald door het Feature Policy,, is de functie alleen ingeschakeld in het huidige document of frame als de oorsprong overeenkomt met de allowlist met origins.

Voor elke policy gestuurde functie, onderhoudt de browser een lijst met oorsprongen waarvoor de functie is ingeschakeld, een zogenaamde allowlist. Als u geen policy voor een element opgeeft, wordt een standaard rol /lijst gebruikt. De standaard allowlist is specifiek voor elke functie.

Een policy schrijven

Een policy wordt beschreven met behulp van een reeks afzonderlijke policy richtlijnen. Een policy richtlijn is een combinatie van een gedefinieerde functienaam en een lijst met bronnen van herkomst die de functie kunnen gebruiken.

Uw policy specificeren

Feature Policy, biedt twee manieren om policy regels te specificeren om functies te beheren:

De HTTP-header van de feature policy.

Het kenmerk allow op iframes.

Het belangrijkste verschil tussen de HTTP-header en het kenmerk allow is dat het kenmerk allow alleen functies binnen een iframe beheert. De header bepaalt de functies in het antwoord en eventuele ingebedde inhoud op de pagina.

Beste werkwijzen voor goede gebruikerservaringen

Er zijn verschillende door policy gecontroleerde functies om best practices voor het leveren van goede prestaties en gebruikerservaringen te handhaven.

In de meeste gevallen vertegenwoordigen de policy gestuurde functies functionaliteit die bij gebruik negatieve gevolgen heeft voor de gebruikerservaring. Om te voorkomen dat bestaande web inhoud wordt verbroken, is de standaard voor dergelijke policy gestuurde functies het toestaan ​​dat de functionaliteit voor alle bronnen wordt gebruikt. Best practices worden vervolgens afgedwongen door policy regels te gebruiken die de policy gestuurde functies uitschakelen. Zie "Best practices afdwingen voor goede gebruikerservaringen" voor meer informatie.

De functies omvatten:

  • Animations
  • Image compression
  • Image downscaling
  • Legacy image formats
  • Synchronous scripts
  • Synchronous XMLHTTPRequest
  • Unsized media
Granulaire controle over bepaalde functies

Het web biedt functionaliteit en API's die mogelijk misbruik of privacyrisico's opleveren. In sommige gevallen wilt u wellicht strikt beperken hoe dergelijke functionaliteit op een website wordt gebruikt. Er zijn policy gestuurde functies waarmee functionaliteit kan worden ingeschakeld/uitgeschakeld voor specifieke bronnen of frames binnen een website. Waar beschikbaar, wordt de functie geïntegreerd met de Permissions API of functie-specifieke mechanismen om te controleren of de functie beschikbaar is.

De functies omvatten:

  • Accelerometer
  • Ambient light sensor
  • Autoplay
  • Camera
  • Encrypted media
  • Fullscreen
  • Geolocation
  • Gyroscope
  • Lazyload
  • Microphone
  • Midi
  • PaymentRequest
  • Picture-in-picture
  • Speaker
  • USB
  • VR / XR
Samenstellen van je Feature Policy

Het is van belang, dat als je weet welke onderdelen je gebruikt op je website zoals een video.

Gezien dat ieder hierop stuk loopt, of dat de uitleg op andere websites onduidelijk over zijn, zullen wij 1 voorbeeld nemen wat je moet weten en toepassen in je Header.

Zodra men gebruik maakt van een video op de website, dan is het verstandig om "Fullscreen" erin toe te passen. Maar wil je dat jouw bezoekers geen "Fullscreen" mogen gebruiken ziet men hieronder de twee voorbeelden.

(Headers Alway set Feature Policy: "Fullscreen 'self';") En al wil je dat niet, dan ziet het er zo uit (Headers Alway set Feature Policy: "Fullscreen 'none';")

In een embedded video staat in de meeste gevallen het volgende

<iframe width="560" height="315" src="https://www.youtube.com/embed/FIQxHxXLb18" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen"></iframe>

Nu ziet men in de zelfde embedded de bewoording "allowfullscreen" wordt vermeld, echter die is niet afgemaakt dat hoe men dat wil laten zien aan je bezoekers. We gaan er van uit, dat jouw bezoekers allowfullscreen mogen gebruiken, dan zal je dat moeten aanpassen in de embedded zoals hieronder staat vermeld.

<iframe width="560" height="315" src="https://www.youtube.com/embed/FIQxHxXLb18" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="self"></iframe>

Zo ziet men ook diverse andere optie in de embedded staan, "autoplay" de Policy die men samenstelt staat dan ook "Autoplay" in vermeld zoals hieronder staat vermeld

(Headers Alway set Feature Policy: "Autoplay 'self';") de video speelt dan ook nu vanzelf af door Autoplay toe te voegen in je Feature Policy

De embedded video komt er dan zo uit te zien

<iframe width="560" height="315" src="https://www.youtube.com/embed/FIQxHxXLb18" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="self"></iframe>

Zo vul je dus eigenlijk je eigen Feature Policy samen, dit zelfde geld natuurlijk ook "ifrane" en de andere opties dat waar jij gebruik van maakt op jouw website. Iedere benaming die men tegen komt in de embedded, zie je ook terug in de opties van Feature Policy.

Echter zit er een maar aan vast, gezien dat de bezoeker deze functie expliciet zelf inschakelen van zijn browser. (zie foto)

Browser compatibiliteit

Browser compatibiliteit

Een Feature-Policy zou er dus zo uit kunnen zien, zoals hieronder is aangemaakt, en gebruikt kan worden in de .htaccess bestand

Header Alway Set Feature-Policy: "allowfullscreen 'self'; accelerometer 'self'; autoplay 'none'; gyroscope'none'; Picture-in-picture 'none'"

Dan nog een andere aandachts-punt, de Feature Policy werkt samen met de Content-Security-Policy.

Ga naar boven