Analyser van beveiligingsheaders
Plak onbewerkte HTTP-antwoordheaders van curl -I of het tabblad Netwerk van DevTools en ontvang een beoordeelde beveiligingsaudit: een echte Content-Security-Policy-grammaticaparser plus HSTS, X-Frame-Options, cookievlaggen en meer, geheel offline.
Resultaat
Response headers bevatten het grootste deel van het echte browser-afgedwongen beveiligingsbeleid van een website, maar als je ze op het oog leest, kun je gemakkelijk fouten maken: een Content-Security-Policy kan er in één oogopslag streng uitzien, terwijl hij stilletjes 'onveilige inline'-scripts toestaat, en een Strict-Transport-Security-header kan aanwezig zijn met een maximale leeftijd die zo kort is dat hij nauwelijks iets doet. Deze tool neemt het onbewerkte headerblok dat je plakt (rechtstreeks gekopieerd uit curl -I, Postman of een DevTools Network-tabbladverzoek in de browser) en doorloopt dezelfde categorie van controles die worden gebruikt door bekende online header-graders, volledig in je browser. Er wordt niets opgehaald: wat u ook plakt, het enige dat wordt geanalyseerd, wat betekent dat het op dezelfde manier werkt voor een openbare productiesite, een interne staging-server of een eindpunt achter een firewall dat geen enkele externe scanner ooit zou kunnen bereiken.
Het middelpunt is een echte Content-Security-Policy-grammaticaparser, geen checklist. De waarde van de header wordt met puntkomma's opgesplitst in richtlijnen, en de bronlijst van elke richtlijn wordt gesplitst en geïnspecteerd op zijn eigen voorwaarden: script- en stijlgerelateerde richtlijnen worden gemarkeerd als ze 'unsafe-inline' of 'unsafe-eval' toestaan, elke richtlijn wordt gemarkeerd voor een kale jokerteken '*'-bron (met extra ernst als dat jokerteken op script-src, object-src, base-uri of default-src staat), brede schemabronnen zoals 'https:' op een scriptrichtlijn worden net zo tolerant opgeroepen als een jokerteken, en het beleid als geheel wordt gecontroleerd op een ontbrekende standaard-src fallback en op verouderde richtlijnen (block-all-mixed-content, plugin-types, referrer, reflected-xss) die moderne browsers eenvoudigweg negeren. Een CSP die alleen wordt verzonden als Content-Security-Policy-Report-Only wordt herkend en gemarkeerd als nog niet daadwerkelijk afgedwongen, in tegenstelling tot een volledig ontbrekend beleid.
Naast CSP controleert de tool Strict-Transport-Security door zijn eigen max-age-richtlijn te parseren en waarden onder ongeveer zes maanden te markeren als te kort om zinvol effectief te zijn, plus of includeSubDomains en preload zijn ingesteld. X-Content-Type-Options moet de exacte tekenreeks 'nosniff' zijn, anders wordt deze door browsers gemarkeerd als genegeerd. X-Frame-Options wordt gecontroleerd op DENY of SAMEORIGIN, maar de tool is zich er ook van bewust dat een CSP frame-ancestors-richtlijn de moderne vervanging is voor click-jacking-bescherming. Als die aanwezig is, wordt X-Frame-Options behandeld als gedekt, zelfs als de oude header zelf ontbreekt. Referrer-Policy wordt gecontroleerd aan de hand van de echte lijst met geldige trefwoorden en gemarkeerd als deze is ingesteld op de URL-lekkende 'unsafe-url'-waarde, Permissions-Policy wordt gecontroleerd op aanwezigheid en elke gevonden Set-Cookie-regel wordt geparseerd op zijn eigen Secure-, HttpOnly- en SameSite-kenmerken, inclusief de specifieke regel dat SameSite = Geen cookies zonder Secure stilzwijgend door browsers worden afgewezen.
Elke controle levert een van de drie eerlijke statussen op – goed, heeft aandacht nodig of ontbreekt – met een duidelijke Engelse uitleg waarom die header belangrijk is voor echte aanvallen (XSS, clickjacking, cookiediefstal, protocoldowngrade), en het algemene A-F-cijfer is een transparante som van punten per header in plaats van een black-box-score. Het volledige rapport kan met één klik als platte tekst worden gekopieerd en in een pull-request, ticket of beveiligingsbeoordeling worden geplakt. Omdat het parseren volledig uit de geplakte tekst gebeurt, is deze tool net zo handig voor het controleren van de headers van uw eigen site, het beoordelen van de reactie van een leverancier voordat deze ermee wordt geïntegreerd, of het dubbel controleren van een configuratiewijziging voordat deze wordt verzonden.