Kontroll av säkerhetsheaders

Klistra in svarsrubrikerna för en sida —curl -sI https://your-site.example/i en terminal, eller blocket från webbläsarens nätverkspanel — och få enbetyg A+ till Fpå OWASP:s kontrollista för säkra rubriker:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, ramskydd,Referrer-Policy, Permissions-Policy, trion för isolering mellan ursprung, versionsläckor, föråldrade rubriker och cookie-flaggor — varje fynd parat med exaktnginx, Apache och Expressrader som åtgärdar det. Allt körs i webbläsaren; sidan kontaktar aldrig webbplatsen.
Statusraden är valfri. Flera Set-Cookie-rader kontrolleras alla. För att ha en policy att betygsätta överhuvudtaget, bygg en i CSP-generatorn; för att plocka isär ett rubrikblock rad för rad, använd HTTP-rubrikstolkaren.
Inget betyg ännu. Klistra in svarsrubriker och tryck på Kontrollera rubriker, eller läs in ett exempel.
Åtgärdsrader för varje fynd visas här efter en kontroll.
Omfattning för den här kontrollen jämfört med SSL-säkerhetskontrollen. Den här sidan betygsätter säkerhetsrubrikerna i svaret (OWASP-listan ovan). SSL-säkerhetskontrollen betygsätter HTTPS-uppsättningen: certifikatkedjan, protokollversioner, chifferstyrka och blandat innehåll. HSTS och cookie-flaggor förekommer på båda sidorna eftersom båda listorna innehåller dem, men med olika glasögon — kör båda kontrollerna för hela bilden.
Självtest
Kör betygsättaren igen mot fasta rubrikblock: det goda exemplet på A+, det dåliga exemplet på F med varje avdrag utlöst, varje regel isolerad (aritmetiken i poängen), versionsläckagetaket, cookie-rådgivningar, CSP-kvalitetsnoteringar, frame-ancestors som räknas som ramskydd, betygsgränser på båda sidor av varje gräns, åtgärdsutdragen och de negativa vägarna. Inget skickas någonstans.
Vad är säkerhetsrubriker?
Med en mening: säkerhetsrubriker är svarsrubriker som instruerar webbläsaren att tillämpa ett skydd som den inte själv kunde ta reda på — ladda aldrig skript från okända ursprung, tala aldrig klartext-HTTP med den här värden igen, bädda aldrig in den här sidan i en ram — och de kostar en konfigurationsrad var.
Rubrikerna som denna sida betygsätter
HeaderSkyddar motOWASP:s rekommenderade värde
Strict-Transport-Securityprotokollnedgradering och cookie-stöld vid första begäran i klartext-HTTPmax-age=63072000; includeSubDomains
Content-Security-Policyskriptinjektion (XSS), skadliga inbäddningar, blandat innehålldefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-OptionsMIME-förväxling (ett skript serverat som en bild)nosniff
X-Frame-Options / CSP frame-ancestorsclickjacking (en sida inbäddad i en ram av en angripare)deny / 'none'
Referrer-Policyläckage av URL:er (med tokens) till tredjepartswebbplatserno-referrer
Permissions-Policysidor och inbäddningar som tyst använder kamera, mikrofon, platsinformationalla funktioner avstängda
Cross-Origin-Opener-Policyandra fönster som når in i webbläsarkontextensame-origin
Cross-Origin-Embedder-Policyladdning av resurser som inte har gått med på det (möjliggör processisolering)require-corp
Cross-Origin-Resource-Policyresurser inbäddade av andra webbplatsersame-origin
Så beräknas betyget

Börja på 100 och subtrahera: −25 för saknad CSP, −20 för saknad HSTS, −10 vardera för saknad X-Content-Type-Options, Referrer-Policy eller något ramskydd, −5 vardera för trion för ursprungsöverskridande och Permissions-Policy, −5 för versionsläckage i Server/X-Powered-By (begränsat), och −5 för en X-XSS-Protection som inte är noll. Bokstavsbetyg: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, under det = F. Rådgivande noteringar (cookie-flaggor, cache-styrning, CSP-kvalitet) drar inte av något.

Vanliga misstag
  • Att sätta rubriker på fel svar. Lägg till dem på varje svar, inklusive felsidor och omdirigeringar — det är vad always i add_header ... always; (nginx) och Header always set (Apache) är till för.
  • Att bara testa startsidan. Proxyservrar, cacher och äldre appar tar ofta bort eller skriver över rubriker på vissa sökvägar endast. Kontrollera de sidor som betyder något: inloggning, kassa, API-slutpunkter.
  • Att behålla X-XSS-Protection. Granskaren den styrde orsakade egna sårbarheter; webbläsare tog bort den. Ett värde som inte är noll kostar nu poäng med avsikt — ta bort den och låt CSP göra jobbet.
  • Att tro att X-Frame-Options är aktuell. Den kan inte tillåta specifika ursprung och finns inte i CSP-standarden; frame-ancestors är den moderna ersättningen. Att behålla båda under övergången är ok — den här sidan godkänner någondera.
  • Att skicka versionsbannerar. Server: Apache/2.4.58 (Unix) smalnar av en angripares sökning efter kända buggar utan nytta. Ta bort versionen; håll antalet rader nere.
Vanliga frågor

Varför är COOP/COEP/CORP bara värda 5 poäng vardera? Trion är det nyaste lagret, främst nödvändigt där man vill ha processisolering (SharedArrayBuffer, Spectre-härdning). En webbplats utan dem har fortfarande sina kärnskydd; med dem behöver vissa inbäddningar över ursprung justeras — därför väger de mindre än CSP eller HSTS.

Betyder ett högt betyg att webbplatsen är säker? Nej — det betyder att svarsrubrikerna är satta. Säkerhetsrubriker är ett lager: TLS-konfiguration, sessionshantering, indatavalidering och patchning avgör fortfarande om webbplatsen faktiskt är säker. Kör SSL-säkerhetskontrollen för TLS-lagret.

Varför är värdet i min Permissions-Policy så långt? OWASP-baslinjen stänger av varje funktion uttryckligen, så att en webbläsare som lägger till nya funktioner inte tyst återaktiverar dem. Ett kortare värde som camera=(), microphone=(), geolocation=() är en början — känn bara till vad det lämnar på.

Kan man kontrollera rubriker för vilken sajt som helst härifrån? Den här sidan gör aldrig nätverksanrop — den betygsätter exakt den text som klistras in, så den fungerar bakom brandväggar och på interna värdar, och inget som granskas lämnar datorn. Att hämta rubrikerna är ett curl -sI i terminalen.

Hur är det med Clear-Site-Data och X-Permitted-Cross-Domain-Policies? Användbara i smala scenarier (utloggningssvar; äldre PDF-/Flash-visare). De är rådgivande här, inte poängsatta — att skicka Clear-Site-Data på varje svar skulle tömma användarnas lagring vid varje sidladdning.