Hoe een site beoordeeld wordt
De score ligt vast: dezelfde instellingen geven altijd hetzelfde cijfer. Hier staat precies hoe, zodat een score na te rekenen is in plaats van op vertrouwen aangenomen.
Honderd punten, min wat er mis is
Elke site begint op 100. Elke zwakte trekt punten af naar rato van het risico, en een paar goede praktijken geven er een paar terug. Het getal wordt begrensd op 0 en 100 en vertaald naar een letter, A tot en met F.
Inhoud boven aanwezigheid
We lezen de policy zoals een browser die leest. Punten kosten vooral: code die los in de pagina staat, instellingen die alles toestaan, en gedeelde platforms waar iedereen schadelijke code kan neerzetten. Moderne, veilige uitzonderingen tellen we niet tegen je, want de browser negeert die toch al.
De opzet van de policy, niet wie erin staat
We beoordelen de opzet van de policy, niet de partijen die hij noemt. Elk adres dat de policy toestaat is een extra plek waar code vandaan kan komen, dus een korte, specifieke lijst laat minder toe dan een lange, en een wildcard die een heel domein openzet is geen grens. Een policy die een paar adressen noemt scoort beter dan een die er vol mee staat, van wie die adressen ook zijn. Of een genoemde partij te vertrouwen is, is een oordeel dat deze controle niet velt.
Een ernstige fout begrenst het cijfer
Sommige oordelen leggen een plafond op het cijfer, ongeacht de punten, omdat je je er niet met een gemiddelde uit kunt rekenen. Een site die losse code in de pagina toestaat, of die over een onbeveiligde verbinding (http) antwoordt, houdt het cijfer laag hoe goed de rest ook is.
Geen policy telt als de slechtste policy
Helemaal 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 beveiligingsinstelling weghalen je cijfer verbetert.
Niet getest is nooit een zakker
Een test die vastliep of niet kon draaien wordt gerapporteerd als niet getest, nul punten, met de reden. Een test die niet draaide zegt niets over de site, en hem als een rood kruis rapporteren zou een uitkomst verzinnen.
Wie het kan fixen
Elk oordeel noemt waar een fix kan zitten: je applicatie, een webserver, het CDN, je hostingprovider, DNS of het netwerk. Meestal meer dan een. Dat is het verschil tussen een middag werk en een telefoontje, en het maakt van een oordeel iets waar je meteen mee aan de slag kunt.
Wat bewust niet getest wordt
Deze controle leest alleen de beveiligingsinstellingen die een site met zijn antwoord meestuurt (de headers) en een paar signalen die van buitenaf zichtbaar zijn. Hij draait geen browser. Regels die in de pagina zelf staan in plaats van meegestuurd te worden, leest hij dus niet, en onderdelen die pas laden terwijl de pagina draait ziet hij niet. Hij test de fijne details van de versleuteling niet, want dat zou betekenen dat je zwakke versleuteling aanbiedt. Als iets niet gemeten is, wordt dat ronduit gezegd, en de afwezigheid van een oordeel wordt nooit gepresenteerd als bewijs dat er niets is.