Co je Permissions-Policy
Permissions-Policy je HTTP hlavička, která určuje, jaké funkce prohlížeče může webová stránka používat – a komu je případně povolí.
Jde o bezpečnostní mechanismus, který dává webu kontrolu nad tím, zda může stránka (nebo její vložený obsah) přistupovat k citlivým funkcím, jako je kamera, mikrofon nebo geolokace.
Permissions-Policy patří mezi security headers.
Jak Permissions-Policy funguje
Permissions-Policy funguje jako sada pravidel, která prohlížeči říkají, co je povoleno a co ne.
Server při načtení stránky pošle hlavičku, která specifikuje, které funkce jsou dostupné pro danou stránku a případně i pro vložené prvky (např. iframe).
To znamená, že můžete:
- úplně zakázat přístup k určité funkci
- povolit ji jen pro vlastní doménu
- nebo ji zpřístupnit konkrétním zdrojům
Prohlížeč pak tato pravidla při načítání stránky respektuje.
Jaké funkce lze omezit
Permissions-Policy se používá pro řízení přístupu k funkcím, které mohou mít dopad na soukromí nebo bezpečnost uživatele.
Typicky jde o:
- geolokaci
- kameru a mikrofon
- přístup k zařízení (např. senzory)
- fullscreen režim
Bez omezení by tyto funkce mohly být dostupné i pro obsah vložený z jiných zdrojů.
Proč je Permissions-Policy důležitá
Moderní webové aplikace mají přístup k řadě funkcí zařízení. To přináší nové možnosti, ale i rizika.
Permissions-Policy umožňuje tyto funkce omezit jen na to, co je skutečně potřeba. Tím se snižuje riziko zneužití; například ze strany externího skriptu nebo vloženého iframe.
Díky tomu:
- máte větší kontrolu nad tím, co stránka dělá
- omezujete přístup k citlivým funkcím
- zvyšujete bezpečnost i ochranu soukromí
Jaký je rozdíl oproti jiným hlavičkám
Na rozdíl od hlaviček, které řeší obsah nebo načítání, Permissions-Policy se zaměřuje na schopnosti prohlížeče.
Neřeší, co se načte, ale co může stránka dělat.
Například:
- Content Security Policy omezuje zdroje obsahu
- X-Frame-Options řeší vkládání do iframe
- Permissions-Policy určuje přístup k funkcím zařízení
Každá hlavička řeší jinou vrstvu bezpečnosti.