# served/hsts-quality

HSTS is preload-grade (1 year, includeSubDomains, preload). Reglen served/hsts-quality kører i served-scope med severity 'warning' og indgår i servering-domænet sammen med 4 andre kontrakter i frameworket.

## Hvorfor hsts-quality findes

An HSTS header below max-age=31536000 without includeSubDomains and preload leaves first-visit SSL-stripping open and fails Observatory top marks.

## Sådan håndhæves hsts-quality

Reglen hsts-quality evalueres mod den kørende server, fordi kravet bor i response headers eller statuskoder, som den statiske HTML ikke kan bære. Fejler en side, får agenten en finding, hvor fix-instruktionen for hsts-quality er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'warning' betyder at et brud på hsts-quality rapporteres uden at blokere builds — men guld-standarden er først nået, når også advarslerne er væk.

## Test og fixtures

Som alle kontrakter i frameworket har served/hsts-quality en mutant-test, der beviser at reglen fejler, når kravet brydes — en regel uden en fejlende test er ikke en regel. Golden-fixturet beviser omvendt, at en fuldt compliant side består hsts-quality sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

## Relaterede regler

- [served/compression](https://pseo.mikkelkrogsholm.dk/regler/served/compression/)
- [served/404-contract](https://pseo.mikkelkrogsholm.dk/regler/served/404-contract/)
- [served/security-headers](https://pseo.mikkelkrogsholm.dk/regler/served/security-headers/)
