Słowniczek

Czym jest Permissions-Policy?

8 lutego 2026 Zaktualizowano 19 kwi 2026

Permissions-Policy to nagłówek odpowiedzi HTTP, który daje właścicielom stron precyzyjną kontrolę nad tym, jakie funkcje przeglądarki i API mogą być używane na ich stronach — i co kluczowe, do jakich funkcji ma dostęp osadzona treść stron trzecich. Czy kiedykolwiek zastanawiałeś się, jak reklama wewnątrz iframe może po cichu poprosić o dostęp do kamery lub mikrofonu odwiedzającego, to Permissions-Policy jest mechanizmem mającym dokładnie temu zapobiegać.

Nagłówek został pierwotnie wprowadzony pod nazwą Feature-Policy. Przeglądarki zaczęły go wspierać około 2018 roku, ale specyfikacja przeszła znaczące zmiany, a nagłówek został ostatecznie przemianowany na Permissions-Policy z nową składnią. Dziś większość nowoczesnych przeglądarek rozpoznaje nagłówek Permissions-Policy, choć niektóre starsze przeglądarki mogą rozumieć tylko przestarzały format Feature-Policy. Dla maksymalnej kompatybilności możesz wysyłać oba nagłówki, ale Permissions-Policy jest tym, na którym powinieneś się skupić długoterminowo.

Jakie funkcje przeglądarki można kontrolować

Lista funkcji, które możesz ograniczyć przez Permissions-Policy, jest zaskakująco długa i nadal rośnie, gdy przeglądarki dodają nowe możliwości. Oto te najbardziej istotne dla właścicieli witryn WordPress:

  • camera: kontroluje dostęp do kamery urządzenia. Istotne, jeśli prowadzisz witrynę członkowską z uploadem wideo lub wtyczkę oferującą zdjęcia profilowe oparte na kamerze.
  • microphone: kontroluje dostęp do nagrywania audio. Wtyczki wyszukiwania głosowego, narzędzia nagrywania podcastów i widżety czatu na żywo czasem o to proszą.
  • geolocation: kontroluje dostęp do GPS lub lokalizacji sieciowej odwiedzającego. Wyszukiwarki lokalizacji, widżety map i dostarczanie treści zależne od lokalizacji mogą o to prosić.
  • payment: kontroluje Payment Request API, które pozwala stronom uruchamiać natywne dialogi płatnicze przeglądarki. WooCommerce i inne wtyczki e-commerce mogą tego używać dla usprawnionej kasy.
  • fullscreen: kontroluje, czy osadzona treść może żądać trybu pełnoekranowego. Odtwarzacze wideo, lightboxy galerii i wtyczki prezentacji zwykle tego potrzebują.
  • autoplay: kontroluje, czy elementy mediów mogą się automatycznie odtwarzać. Wpływa to na nagłówki wideo w tle, automatycznie odtwarzane slidery i osadzone odtwarzacze YouTube lub Vimeo.
  • display-capture: kontroluje możliwości udostępniania ekranu. Szczególnie istotne dla narzędzi konferencyjnych lub wsparcia osadzonych na Twojej stronie.
  • usb: kontroluje WebUSB API. Rzadko potrzebne na typowych witrynach WordPress, ale czasami używane przez specjalistyczne wtyczki integracji sprzętowej.
  • bluetooth: kontroluje dostęp Web Bluetooth. Podobnie jak USB; niszowa funkcja, ale warta ograniczenia domyślnie.
  • interest-cohort: używane do rezygnacji z propozycji śledzenia FLoC Google. Choć FLoC został zastąpiony przez Topics API, wiele stron nadal wysyła tę dyrektywę.

Jak działa składnia

Nagłówek Permissions-Policy używa prostej składni. Każda funkcja jest poprzedzona listą zezwoleń w nawiasach. Puste nawiasy oznaczają, że funkcja jest całkowicie wyłączona dla wszystkich, w tym Twojej własnej strony:

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Jeśli chcesz zezwolić na funkcję dla swojego origin, ale zablokować ją dla wszystkich osadzonych treści stron trzecich, użyj słowa kluczowego self:

Permissions-Policy: camera=(self), geolocation=(self "https://maps.example.com")

W tym przykładzie Twoje własne strony mogą uzyskiwać dostęp do kamery, a geolocation jest dostępne zarówno dla Twojego origin, jak i zaufanego dostawcy map. Wszystkie inne osadzone origins są zablokowane przed użyciem tych funkcji. Możesz też użyć *, aby zezwolić wszystkim origins, ale to niweczy cały cel nagłówka.

Jak iframe'y stron trzecich nadużywają uprawnień przeglądarki

Głównym modelem zagrożeń stojącym za Permissions-Policy jest osadzony iframe. Gdy umieszczasz sieć reklamową, widżet mediów społecznościowych, narzędzie czatu lub inne osadzenie strony trzeciej na swojej witrynie WordPress, to osadzenie działa w iframe z własnym kontekstem wykonywania. Bez nagłówka Permissions-Policy przeglądarka traktuje ten iframe jeśli chodzi o dostęp do funkcji niemal jak stronę first-party.

Oznacza to, że źle zakodowana lub wręcz złośliwa reklama może wywołać navigator.mediaDevices.getUserMedia(), by poprosić o dostęp do kamery lub mikrofonu. Przeglądarka pokazuje odwiedzającemu prośbę o pozwolenie, ale ta prośba tylko wskazuje, że strona prosi o dostęp. Większość użytkowników nie zdaje sobie sprawy, że prośba pochodzi z osadzonej reklamy, a nie ze strony, którą odwiedzają. Jeśli klikną "Zezwól", reklama ma dostęp do strumienia wideo lub audio na żywo.

Nadużywanie geolocation jest jeszcze subtelniejsze. Niektóre sieci reklamowe zostały złapane na żądaniu danych lokalizacji, by budować bardziej szczegółowe profile użytkowników. Nadużywanie Payment API jest rzadsze, ale potencjalnie niebezpieczniejsze, ponieważ może wywoływać mylące dialogi płatnicze. Ze ścisłą Permissions-Policy odcinasz wszystkie te wektory ataków na poziomie przeglądarki, niezależnie od tego, jaki JavaScript próbuje uruchomić osadzenie.

Relacja do starszego nagłówka Feature-Policy

Jeśli natknąłeś się na odniesienia do Feature-Policy i zastanawiasz się, czy to to samo: tak, w istocie tak. Feature-Policy była oryginalną nazwą i używała nieco innej składni. Zamiast camera=(self) stary format wyglądał jak camera 'self'. Nagłówek Feature-Policy był wspierany od około 2018 roku przez Chrome, Firefox i inne przeglądarki.

W3C ostatecznie przeprojektowało specyfikację z czystszą składnią i przemianowało ją na Permissions-Policy. Chrome przeszło na nowy nagłówek w wersji 88 (styczeń 2021). Firefox podążył za nim później. Obecnie Feature-Policy jest uważana za przestarzałą. Większość skanerów bezpieczeństwa i narzędzi (w tym InspectWP) sprawdza specjalnie pod kątem nagłówka Permissions-Policy. Jeśli Twój serwer nadal wysyła stary nagłówek Feature-Policy, zwykle będzie nadal działać w przeglądarkach, które go wspierają, ale zaplanuj migrację do nowego formatu.

Kwestie specyficzne dla WordPressa

Witryny WordPress są szczególnie dotknięte przez Permissions-Policy z powodu sposobu działania ekosystemu wtyczek. Typowa witryna WordPress ma 15 do 30 aktywnych wtyczek, a wiele z nich wstrzykuje iframe'y lub ładuje skrypty stron trzecich. Oto typowe scenariusze, w których Permissions-Policy ma znaczenie:

  • Wtyczki formularzy kontaktowych z polami uploadu plików, które oferują rejestrację z kamery na urządzeniach mobilnych.
  • Strony kasy WooCommerce, które integrują się z dostawcami płatności przez iframe'y.
  • Osadzenia Google Maps, które żądają geolocation, aby pokazać pozycję użytkownika.
  • Wtyczki wideokonferencji (dla kursów online lub wsparcia), które potrzebują dostępu do kamery i mikrofonu.
  • Wtyczki zarządzania reklamami, które osadzają iframe'y sieci reklamowych na Twoich stronach.

Właściwe podejście to zacząć od restrykcyjnej polityki, która wyłącza wszystko, a następnie selektywnie włączać funkcje, których Twoja strona faktycznie potrzebuje. W ten sposób, nawet jeśli wtyczka załaduje nieoczekiwany iframe strony trzeciej, przeglądarka blokuje dostęp do wrażliwych funkcji.

Jak ustawić nagłówek Permissions-Policy w WordPressie

Możesz dodać nagłówek przez konfigurację serwera WWW lub przez wtyczkę WordPress. Dla Apache dodaj linię do .htaccess:

Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=()"

Dla Nginx odpowiednik trafia do bloku server:

add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=()" always;

Wtyczki bezpieczeństwa takie jak HTTP Headers, Really Simple Security lub Perfmatters również oferują sterowanie przez UI do ustawiania nagłówka Permissions-Policy bez konieczności dotykania plików konfiguracyjnych serwera.

Co sprawdza InspectWP

InspectWP analizuje, czy Twoja witryna WordPress wysyła nagłówek Permissions-Policy w swoich odpowiedziach HTTP. Jeśli nagłówka brakuje, raport sygnalizuje to jako problem bezpieczeństwa, ponieważ osadzona treść stron trzecich (reklamy, widżety, iframe'y) może uzyskać dostęp do wrażliwych funkcji przeglądarki, takich jak kamera, mikrofon lub geolocation, bez żadnych ograniczeń. Raport pokazuje też surową wartość nagłówka, abyś mógł zweryfikować, jakie funkcje są obecnie ograniczone.

Sprawdź teraz swoją stronę WordPress

InspectWP analizuje Twoją stronę WordPress pod kątem bezpieczeństwa, problemów SEO, zgodności z RODO i wydajności — za darmo.

Przeanalizuj stronę za darmo