# served/csp-quality

CSP contains no unsafe-inline scripts or wildcard sources. Reglen served/csp-quality kører i served-scope med severity 'error' og indgår i servering-domænet sammen med 4 andre kontrakter i frameworket.

## Hvorfor csp-quality findes

A CSP with 'unsafe-inline' in script-src (or a bare * source) nullifies its XSS protection while still claiming to have one. Zero-JS static sites can run a strict CSP with no exceptions.

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

Reglen csp-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 csp-quality er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på csp-quality fejler hele verifikationen med exit-kode 1, så hverken CI eller en agent kan skibe sitet før fundet er rettet.

## Test og fixtures

Som alle kontrakter i frameworket har served/csp-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 csp-quality sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

## Relaterede regler

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