Blog 24/7
ARK. B23Parametr monitoringuBezpieczeństwo · lista 87 parametrów

Permissions-Policy

ważność niskamierzonysposób security_headers

Nagłówek ograniczający dostęp skryptów do kamery, mikrofonu i geolokalizacji. Brak oznacza, że każdy skrypt na stronie może o nie poprosić.

Stary nagłówek Feature-Policy liczy się jako spełnienie.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 9

Nagłówek Permissions-Policy to parametr monitoringu stron internetowych, który sprawdza, czy odpowiedź serwera zawiera nagłówek Permissions-Policy albo jego poprzednika Feature-Policy. Pomiar kończy się jednym z trzech wyników: nagłówek obecny, brak nagłówka albo nie udało się pobrać odpowiedzi. Permissions Policy to mechanizm, który pozwala twórcom stron selektywnie włączać i wyłączać funkcje oraz interfejsy przeglądarki [1].

Jak działa

Nagłówek ma składnię pól strukturalnych HTTP: kluczem jest nazwa funkcji, a wartością lista dozwolonych pochodzeń, np. geolocation=(self "https://example.com") albo camera=() [1]. Słownik (ang. Dictionary) i lista w nawiasach (ang. Inner List) to typy zdefiniowane w RFC 9651 [7]. Lista może zawierać *, czyli wszystkie pochodzenia, self, czyli dokument i ramki z tego samego pochodzenia, albo wskazane pochodzenia. Pusta lista wyłącza funkcję w dokumencie i we wszystkich ramkach [2]. Wartości * i () występują wyłącznie samodzielnie, a self można łączyć z innymi pochodzeniami [2]. Specyfikacja dopuszcza też pochodzenia z symbolem wieloznacznym dla subdomen, np. https://*.example.com [1].

Poza kamerą, mikrofonem i geolokalizacją polityka obejmuje m.in. tryb pełnoekranowy, interfejs płatności Payment Request i WebUSB [2]. MDN jako zastosowania wymienia też zmianę domyślnego autoodtwarzania wideo i zezwolenie ramkom na tryb pełnoekranowy [3].

Każda funkcja ma domyślną listę, * albo self [1]. Dla kamery, mikrofonu i geolokalizacji jest to self [5] [9] [6]: dostęp mają dokument główny i ramki z tego samego pochodzenia [6]. Ramka z obcego pochodzenia potrzebuje atrybutu allow elementu iframe [4], a przy ustawionym nagłówku funkcję musi dopuszczać zarówno polityka strony, jak i ten atrybut [3]. Ramka nie może włączyć funkcji, którą wyłączył rodzic [1] [3]. Skrypty dziedziczą politykę kontekstu, w którym działają, niezależnie od swojego pochodzenia [3].

Zablokowana funkcja kończy się błędem: getUserMedia() odrzuca obietnicę z wyjątkiem NotAllowedError [5], a geolokalizacja zwraca kod PERMISSION_DENIED [6].

RYS. 1.1Ramka prosi o kamerę

Standardy i specyfikacje

  • Permissions Policy (W3C, szkic roboczy) definiuje funkcje sterowane polityką, listy dozwolonych pochodzeń i dziedziczenie do ramek. Specyfikacja nosiła wcześniej nazwę Feature Policy [1].
  • Feature-Policy w Chrome od wersji 88 działa jako alias nowego nagłówka, a gdy odpowiedź zawiera oba, pierwszeństwo ma Permissions-Policy [4]. Stary nagłówek miał inną składnię: geolocation 'self' https://example.com; camera 'none' zamiast geolocation=(self "https://example.com"), camera=() [4]. Składnia atrybutu allow się nie zmieniła [3].
  • Raportowanie. Dyrektywa może nieść parametr report-to wskazujący odbiorcę zdefiniowanego nagłówkiem Reporting-Endpoints; przy naruszeniu, np. wywołaniu getCurrentPosition(), przeglądarka wysyła raport [2]. Chrome zaznacza też zmianę wobec starego nagłówka: samo dopisanie pochodzenia do listy nie włącza już funkcji w obcej ramce [4].
  • MDN oznacza dyrektywę camera jako eksperymentalną i niedziałającą w części najczęściej używanych przeglądarek [5].
  • OWASP zaleca ustawienie nagłówka i wyłączenie funkcji, których strona nie potrzebuje, np. geolocation=(), camera=(), microphone=() [8].
RYS. 1.2Decyzja przeglądarki

Zagrożenia i skutki

Polityka a zgoda użytkownika. Permissions Policy decyduje, czy funkcja jest w dokumencie w ogóle dostępna; interfejs uprawnień (Permissions API) obsługuje zgodę, której udziela użytkownik [3]. Gdy polityka blokuje funkcję, użytkownik zwykle nie widzi pytania [3]. Gdy polityka funkcję dopuszcza, o dostępie do funkcji wrażliwych nadal ostatecznie decyduje użytkownik w oknie z pytaniem [4]. Brak nagłówka nie daje więc nikomu kamery bez wiedzy użytkownika.

Skrypty zewnętrzne. Skrypt osadzony bezpośrednio na stronie dziedziczy jej politykę, niezależnie od pochodzenia [3]. Przy domyślnej liście self dokument główny ma dostęp do geolokalizacji [6], więc skrypt reklamowy lub analityczny wczytany do strony może poprosić o lokalizację w jej imieniu, a użytkownik zobaczy pytanie od tej strony. Pusta lista w nagłówku blokuje takie wywołanie [2].

Ramki. Obce ramki domyślnie nie dostają funkcji z listą self [1]. Ryzyko rośnie przy liście *, która dopuszcza funkcję we wszystkich ramkach bez względu na pochodzenie [2].

Nadmierna blokada. Pusta lista wyłącza funkcję także w dokumencie głównym [2], więc polityka przepisana bez przeglądu może zablokować funkcje, z których strona korzysta: wywołania zakończą się błędem [5] [6].

Przykłady

Nagłówek albo sytuacjaSkutek w przeglądarce
brak nagłówkakamera, mikrofon, geolokalizacja dla dokumentu i ramek własnych [5] [6] [9]
camera=(), microphone=(), geolocation=()funkcje wyłączone w dokumencie i ramkach [2] [8]
geolocation=(self "https://example.com") i ramka z allow="geolocation"lokalizacja dla strony i tej jednej obcej ramki [6]
geolocation=*funkcja dozwolona we wszystkich ramkach [2]
sam Feature-Policy: camera 'none'Chrome od wersji 88 traktuje go jak alias [4]
oba nagłówki narazwygrywa Permissions-Policy [4]
funkcja zablokowana politykąbłąd bez okna z pytaniem [3]
TAB. 1.1Przypisy9
  1. [1] Permissions Policy · W3C
  2. [2] Permissions-Policy header · MDN Web Docs
  3. [3] Permissions Policy · MDN Web Docs
  4. [4] Control browser features with Permissions Policy · Chrome for Developers
  5. [5] Permissions-Policy: camera directive · MDN Web Docs
  6. [6] Permissions-Policy: geolocation directive · MDN Web Docs
  7. [7] RFC 9651 — Structured Field Values for HTTP · IETF
  8. [8] HTTP Security Response Headers Cheat Sheet · OWASP
  9. [9] Permissions-Policy: microphone directive · MDN Web Docs
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per strona—

Ten parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.

TAB. 2.3Ustalenia—

Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.

TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
33sposób security_headers
W 30 dni
0przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
—33 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 22.09.2026

Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.

RYS. 3.1Droga parametru przez system: Permissions-Policy
TAB. 3.1Pomiarpliki: 6
Obszar i ważnośćBezpieczeństwo · niska (B23)
Workflow i częstotliwośćcreato_ping_security_v2 · P3 działa na LAB247Skaner 2.0, rytm „p3” / „bezpieczenstwo”: premium co 6 h, reszta co 24 h (tier 1–3), co 9 dni (tier 4) · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu.
Sonda i helpersposób security_headers · CREATO_PING/helpers/security_headers.py
Testy
  1. Tylko przebieg P3; domena bez rekordu A pominięta na wstępie; strony w przebiegu sprawdzane po kolei.
  2. HEAD https://domena (wyłącznie strona główna) z podążaniem za przekierowaniami — nagłówki czytane tylko z odpowiedzi końcowej; kod 405 = druga próba GET.
  3. Sprawdzana tylko obecność Permissions-Policy albo starego Feature-Policy (alias); wartość nie jest czytana.
  4. Jedno żądanie obsługuje sześć nagłówków bezpieczeństwa.
Typ wyniku0 albo 1 ustalenie missing_permissions_policy
Jednostkabrak — wynik jakościowy (obecność nagłówka)
Próg i regułaTimeout 6,0 s, połączenie 2,0 s (stała w helperze). Reguła: brak obu nagłówków = missing_permissions_policy; którykolwiek z dowolną wartością = ok.
Gdzie leżą pokrętłaCREATO_PING/helpers/security_headers.py → _CHECKS, _TIMEOUT, _ALIASESCREATO_PING/helpers/security_runner.py → do_writera (bramka gate z polityki; sito powagi zniknęło 18.09)CREATO_PING/config/incident_policy.toml → [finding] missing_permissions_policy
Retencja odczytówSurowy pomiar jako NIEZMIENNY wiersz tabeli `odczyty` w bazie skanera (wejście, wyjście, dowody, sha karty sondy i helpera, commit kodu) — trigger odrzuca każdą zmianę. Okno retencji z kohorty: 90 dni premium, 30 dni reszta; poza oknem zostają odczyty z werdyktem problemu, akcją albo etykietą, bo replay reguł ich potrzebuje (`skaner/retencja.py`). Do LAB247 ten kanał nie idzie (do bazy serwisu jadą dziś tylko sprawdzenia dostępności), więc poza odczytem zostaje werdykt w tabeli `werdykty` i sprawa w tabeli `sprawy`.
Znane rozbieżności
  1. Sprawdzana sama obecność: camera=* albo polityka bez kamery, mikrofonu i geolokalizacji przechodzi jako ok.
  2. Brak nagłówka nie daje nieograniczonego dostępu: obce ramki domyślnie nie dostają tych funkcji, a kamera i lokalizacja nadal wymagają zgody użytkownika — opis w katalogu ustaleń przesadza.
  3. Błąd sieci albo timeout zwraca pustą listę — nieodróżnialne od „nagłówek jest”; odpowiedź 403 z WAF-a albo 5xx oceniana jak zwykła strona.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/security_headers.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/skaner/klasyfikacja.py · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 22.09.2026
TAB. 3.2Co oznacza failtypów Findingów: 1

missing_permissions_policy: bramka polityki zamknięta (gate=false) — zostaje odczyt i werdykt „bez_subtaska” w bazie skanera, sprawa nie powstaje, więc usterka „Brak ograniczeń kamery/mikrofonu dla obcych skryptów” (waga 1) nie wchodzi do wskaźnika strony. Utwardzenie, nie incydent (waga 1 w katalogu usterek).

KodFindingSeverityPewnośćSkutekFinding / alarmWaga → ocenaCo zrobić
B23.01Brak Permissions-Policymissing_permissions_policyNiskaEwidentnebez wpływunie / niewaga 1 → ocena 2 (zielony)Dodaj Permissions-Policy z pustą listą dla nieużywanych uprawnień.
TAB. 3.3B23.01 · Brak Permissions-Policywersja 1 · 01.10.2026
Kod i kluczB23.01 · missing_permissions_policy · w tabeli typów
Co znaczySkrypty na stronie mają nieograniczony dostęp do kamery, mikrofonu i geolokalizacji. Stary Feature-Policy liczy się jako spełnienie.
Kiedy powstajeEmitowany, gdy w nagłówkach odpowiedzi (nazwy lowercase) brak 'permissions-policy'.Tylko p3. Jedno żądanie HEAD {scheme}://{domena} (UA „CREATO_PING-secheaders/1.0”, follow_redirects, timeout 6 s / connect 2 s); przy 405 powtórka GET. Sprawdzane nagłówki odpowiedzi końcowej bez względu na kod statusu; wartość nie jest walidowana (liczy się sama obecność nazwy). Błąd httpx = brak jakichkolwiek findingów nagłówków. Alias: obecność feature-policy = spełnienie (security_headers.py:53–55).
Severity · pewnośćNiska · Ewidentne
Skutek dla stronybez wpływu · tylko statystyka (gate=false) · alarm nie
Waga → ocenawaga 1 → ocena 2 (zielony)
KlasyfikacjaCWE: CWE-693 (Protection Mechanism Failure)OWASP Top 10:2025: A02:2025 Security MisconfigurationOCSF 1.9.0: Compliance Finding (class_uid 2003)
Rekord OCSFfinding_info.analytic.uid = "B23.01" · analytic.name = "missing_permissions_policy" · finding_info.types = ["B23 Permissions-Policy"]
Co zrobićDodaj Permissions-Policy z pustą listą dla nieużywanych uprawnień.
Wersje typu
  1. v1 · 01.10.2026 — kod B23.01 nadany (finding-codes.ts)
ARK. 4

LOOP

bez pętli
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.

TAB. 4.2Pętle—

Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com