Naar de inhoud
websitecontrole.nl
Waarom deze controle

De meeste checks vragen of je een policy hebt. Deze leest hem.

Een security header is makkelijk toe te voegen en makkelijk op aanwezigheid te controleren. Wat hij werkelijk toestaat is een andere vraag, en dat is de vraag die bepaalt of de header iemand beschermt. Deze controle beoordeelt de inhoud, niet de aanwezigheid.

Een policy die bestaat, maar bijna niets tegenhoudt
Content-Security-Policy: script-src 'unsafe-inline' https:
Code op je pagina mag gewoon draaienEen simpele controle ziet een policy en zet een vinkje. We lezen wat het toelaat: krijgt iemand code op je pagina, dan draait die mee.

Inhoud, niet aanwezigheid

Een Content-Security-Policy die inline scripts van elke host toestaat houdt vrijwel niets tegen, en toch is het een policy. Lees je hem zoals een browser dat doet, dan komen de zwakke plekken een voor een naar boven: code die los in de pagina staat, instellingen die alles toestaan, en gedeelde platforms waar iedereen schadelijke code kan neerzetten. Moderne, veilige uitzonderingen tellen niet tegen je, want de browser negeert die toch al.

Geen policy is de slechtste policy

Geen policy sturen is geen neutrale afwezigheid. Het laat je pagina net zo onbeschermd als een policy die alles toestaat, dus het telt ook zo mee. Dat cijfer rekenen we uit door zo'n alles-toestaan-policy langs precies dezelfde controles te leggen, waardoor deze controle je nooit kan vertellen dat een header weghalen je cijfer verbetert.

Elk oordeel toont zijn bewijs

De ruwe headers staan onder het rapport, en elk oordeel wijst het stukje policy aan waar het vandaan komt. Ben je het oneens met een oordeel, dan zie je precies waar het op stoelde, in plaats van een letter op vertrouwen aan te nemen.

Niet gemeten is nooit een zakker

Een controle die niet kon draaien wordt gerapporteerd als niet getest, met de reden en zonder puntenverlies. Een timeout zegt niets over de site, en hem als een rood kruis presenteren zou een uitkomst verzinnen. De afwezigheid van een oordeel wordt nooit gepresenteerd als bewijs dat er niets is.

En wie het kan fixen

Elk oordeel noemt waar een fix kan zitten: je applicatie, een webserver, de edge, de host, DNS of het netwerk. Meestal meer dan een. Dat is het verschil tussen een middag werk en een telefoontje naar een provider, en het is het deel dat een cijfer verandert in iets waar je mee aan de slag kunt.

Het resultaat is een cijfer dat je regel voor regel kunt verdedigen, in gewone taal, met het bewijs erbij.