Permissions Policy

Nagłówek Permissions Policy, czyli Polityka uprawnień

Permissions Policy, czyli Polityka uprawnień jest jednym z nagłówków opisanych przeze mnie w artykule Nagłówki bezpieczeństwa.
Z założenia moja strona ma być WordPressem dla laików. Jednakże dla tych, którzy chcieliby trochę więcej dowiedzieć się o nagłówkach bezpieczeństwa, postaram się tematykę przybliżyć w kolejnych wpisach.

Nagłówek HTTP Permissions-Policy zastąpił istniejący dotychczas nagłówek Feature-Policy, który służył do kontroli delegacji uprawnień i zaawansowanych funkcji. Nagłówek ten używa ustrukturyzowanej składni i pozwala witrynom na ściślejsze ograniczenie tego, które źródła mogą uzyskać dostęp do funkcji.

Najważniejsze funkcje Permissions policy

Nagłówek Permissions Policy pozwala na precyzyjną kontrolę tego, z jakich funkcji przeglądarki może korzystać Twoja witryna. Istnieje wiele dyrektyw, które można kontrolować za pomocą nagłówka Permissions Policy. Ponieważ nie wszystkie dostępne funkcje są oczywiste, poniżej przedstawiam krótki opis poszczególnych dyrektyw:

  • Accelerometer: Zezwala lub zabrania żądania informacji o przyspieszeniu urządzenia,
  • Autoplay: Zezwala lub zabrania automatycznego odtwarzania mediów (wymagane przez interfejs HTMLMediaElement),
  • Camera: Zezwala lub zabrania korzystania z urządzeń wejściowych wideo,
  • Encrypted-media: Zezwala lub zabrania korzystania z interfejsu API „Encrypted Media Extensions” w celu kontrolowania odtwarzania treści podlegających cyfrowemu systemowi zarządzania ograniczeniami,
  • Fullscreen: Zezwala lub zabrania ramkom typu cross- i same-origin używania trybu pełnoekranowego,
  • Geolocation: Zezwala lub zabrania korzystania z interfejsu geolokalizacji,
  • Gyroscope: Zezwala lub zabrania zbierania informacji o orientacji urządzenia (za pomocą pomiarów przesunięcia kątowego wzdłuż trzech osi),
  • Magnetometer: Zezwala lub zabrania zbierania informacji o orientacji urządzenia (wykrywanej przez główny czujnik magnetometru urządzenia),
  • Microphone: Zezwala lub zabrania korzystania z urządzeń wejściowych audio,
  • Midi: Zezwala lub zabrania korzystania z interfejsu Web MIDI API, który zawiera metody wyświetlania i żądania informacji z podłączonych urządzeń MIDI,
  • Payment: Zezwala lub zabrania korzystania z API Payment Request (ma na celu zmniejszenie liczby kroków potrzebnych do ukończenia płatności poprzez zapamiętywanie informacji o płatności),
  • Picture-in-picture: Zezwala lub zabrania odtwarzania filmów w trybie Obraz w obrazie (Picture-in-Picture),
  • Sync-xhr: Zezwala lub zabrania synchronicznym żądaniom XMLHttpRequest na pobieranie danych z adresu URL bez konieczności pełnego odświeżania strony,
  • USB: Zezwala lub zabrania korzystania z interfejsu API WebUSB,
  • New Interest-cohort: Służy do uniemożliwienia Google wykorzystania Twojej witryny do fingerprintingu przeglądarki w ramach procesu FLoC. FLoC jest skrótem od Federated Learning of Cohorts, czyli metody pozwalającej grupować użytkowników internetu i docelowo tworzyć reklamy kierowane. Z założenia ma to nie pozyskiwać w oczywisty sposób informacji o pojedynczych osobach. Więcej w artykule Google chce cię „śledzić” przez FLoC, a nie ciasteczka. To ma być krok w stronę prywatności.

Wartości dyrektyw nagłówka Polityki uprawnień

Każda dyrektywa może mieć jedną z tych poniższych wartości:

  • *
  • ’self’
  • ’none’
  • <origin(s)>

W następnym kroku rozłożymy je na czynniki pierwsze i przyjrzyjmy się dokładnie temu, na co pozwoli każda z nich:

  • * – pozwoli bieżącej stronie korzystać z funkcji i wszelkich innych kontekstów przeglądania zagnieżdżonych wewnątrz niej, takich jak iframe;
  • ’self’ – pozwoli bieżącej stronie na użycie funkcji i wszelkich innych kontekstów przeglądania zagnieżdżonych wewnątrz niej, takich jak iframe, tylko jeśli pochodzą z tego samego źródła, więc na przykład ramka własnej strony na swojej stronie;
  • ’none’ – ta funkcja będzie wyłączona dla bieżącej strony i wszelkich zagnieżdżonych kontekstów przeglądania, takich jak iframe;
  • <origin(s)> – tylko określone źródła będą mogły używać tej funkcji. Na przykład https://example.com lub https://example.net, https://example.org.

Mam nadzieję, że w tym artykule w sposób w miarę czytelny przybliżyłem jeden z nagłówków, jakim jest Permissions Policy. Gdy skonfigurujemy go w odpowiedni dla naszej witryny sposób, to w efekcie na stronie https://securityheaders.com/ jeden z obszarów zaświeci się na zielono.

Permissions policy
Konfiguracja Permissions policy na stronie testowej

Będzie to jeden z elementów mających na celu poprawę bezpieczeństwa naszej witryny. Jest to też jeden z kroków do uzyskania końcowego efektu, jaki opisałem w artykule Strona internetowa – jak ją założyć?

Jeżeli chcesz dowiedzieć się więcej na temat powyższego nagłówka, odpowiednie informacje znajdziesz na przykład na stronie Mozilli.