Narzędzia CometWeb
Sprawdzanie nagłówków bezpieczeństwa
Security headers check dla jednego adresu · HSTS, CSP, X-Frame-Options i reszta, ze statusem i wyjaśnieniem
Sprawdzanie nagłówków bezpieczeństwa pobiera publiczny adres przez nasz serwer i odczytuje nagłówki odpowiedzi HTTP, które mówią przeglądarce, jak chronić stronę: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options albo frame-ancestors, X-Content-Type-Options, Referrer-Policy i Permissions-Policy, a do tego Cross-Origin-Opener-Policy i Cross-Origin-Resource-Policy. Każdy nagłówek dostaje status i krótkie wyjaśnienie. Narzędzie wskazuje też nagłówki Server i X-Powered-By, które zdradzają oprogramowanie serwera. Wynik to sygnał o konfiguracji przeglądarki, a podatności w samej aplikacji wykrywa dopiero test bezpieczeństwa.
Od których nagłówków zacząć?
Zacznij od HSTS i nosniff. Oba to jedna linia w konfiguracji serwera albo CDN i rzadko cokolwiek psują. HSTS wymaga, żeby cała witryna działała po HTTPS. Zacznij od krótszego max-age, sprawdź, czy wszystkie subdomeny odpowiadają po HTTPS, i dopiero wtedy podnieś go do roku.
CSP wymaga najwięcej pracy i daje najwięcej. Polityka, która dopuszcza skrypty z 'unsafe-inline', zatrzyma niewiele ataków XSS. Zacznij od Content-Security-Policy-Report-Only, obserwuj zgłoszenia przez tydzień lub dwa i dopiero potem przełącz na nagłówek, który blokuje. Politykę zbudujesz w naszym generatorze CSP.
Ramki i referrer to szybkie poprawki. frame-ancestors 'self' (albo X-Frame-Options: SAMEORIGIN dla starszych przeglądarek) blokuje clickjacking. Referrer-Policy: strict-origin-when-cross-origin nie wysyła innym witrynom ścieżek i parametrów, w których bywają tokeny albo adresy e-mail.
Sprawdź, kto ustawia nagłówki. CDN albo serwer proxy może dodać, zmienić albo usunąć nagłówek po tym, jak wyśle go aplikacja. Widzieliśmy to na cometweb.io: warstwa brzegowa zastępowała naszą pełną politykę CSP jedną dyrektywą. To narzędzie pokazuje, co dociera do odwiedzającego, więc jeśli wynik różni się od konfiguracji, szukaj przyczyny w warstwie pośredniej.
Sprawdź kilka typów odpowiedzi
Nagłówki ustawiają zwykle trzy warstwy: aplikacja, serwer WWW i CDN, a reguły często obejmują tylko część odpowiedzi. Sprawdź stronę główną, jedną podstronę i stronę błędu, na przykład adres, który zwraca 404. Różnice między nimi pokażą, która warstwa dodaje nagłówek, a która go pomija.
OWASP · Secure Headers Project ↗Skróty w wyniku
- HSTSStrict-Transport-Security
- Wymusza HTTPS na czas podany w max-age.
- CSPContent-Security-Policy
- Lista dozwolonych źródeł skryptów, stylów i innych zasobów.
- XFOX-Frame-Options
- Starszy sposób blokowania osadzania strony w ramce.
- COOPCross-Origin-Opener-Policy
- Izoluje okno strony od okien innych witryn.
- CORPCross-Origin-Resource-Policy
- Określa, kto może wczytać dany zasób.
Wpisz adres i kliknij „Sprawdź nagłówki”. Nasz serwer pobiera stronę tak jak przeglądarka, podąża za przekierowaniami i odczytuje nagłówki odpowiedzi strony końcowej. Dostajesz każdy nagłówek ze statusem i wyjaśnieniem. W przeglądarce te same dane zobaczysz w narzędziach deweloperskich: zakładka Network, pierwsze żądanie dokumentu, sekcja Response Headers.
Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options: nosniff, ochronę przed osadzaniem w ramce (frame-ancestors albo X-Frame-Options), Referrer-Policy i Permissions-Policy. Cross-Origin-Opener-Policy i Cross-Origin-Resource-Policy przydają się stronom, które potrzebują izolacji między witrynami albo udostępniają pliki innym domenom.
Najczęściej rok, czyli 31536000 sekund. Tyle wymaga też lista preload przeglądarek, razem z includeSubDomains i preload. Wartość poniżej 180 dni oznaczamy jako słabą. Podczas wdrażania zacznij od krótszego czasu i wydłużaj go, gdy upewnisz się, że wszystkie subdomeny działają po HTTPS.
Najczęściej z powodu 'unsafe-inline' albo 'unsafe-eval' w script-src, gwiazdki jako źródła skryptów albo braku script-src i default-src. Słaba jest też polityka wysyłana tylko jako Report-Only, bo niczego nie blokuje. Zamiast 'unsafe-inline' użyj nonce albo hashy dla skryptów, których potrzebujesz.
frame-ancestors w CSP to obecny standard i pozwala wskazać kilka witryn. X-Frame-Options zna tylko DENY i SAMEORIGIN. Gdy ustawisz oba, przeglądarki obsługujące frame-ancestors użyją frame-ancestors. Oba nagłówki naraz mają sens, jeśli zależy ci na bardzo starych przeglądarkach.
X-Powered-By tak, przeglądarka go nie używa. Z nagłówka Server usuń przynajmniej numer wersji. Ukrycie ich nie łata podatności, ale przestaje podpowiadać, od których zacząć atak.
Dobry wynik oznacza, że przeglądarka dostaje sensowne instrukcje. Nagłówki nie wykryją SQL injection, słabych haseł ani nieaktualnych wtyczek. Traktuj wynik jako jeden sygnał, a samą aplikację sprawdź osobno, na przykład testem bezpieczeństwa.
Adres pobiera nasz serwer, więc trafia do naszych logów. Wyników nie przechowujemy. Adresy prywatne i lokalne odrzucamy, także po przekierowaniu.
Co jeszcze może Ci się przydać
TLS, nagłówki, cookies i ekspozycja — z rozkładem wyniku i planem naprawy.