Security-Header
securityHeaders() ergänzt ein sinnvolles Set an Security-Response-Headern.
Jeder Header ist einzeln überschreibbar, false lässt einen weg, und ein
vom Handler bereits gesetzter Header gewinnt immer.
import { securityHeaders, withMiddleware } from 'actor-ts/http';
const routes = withMiddleware(securityHeaders(), appRoutes);Defaults: X-Content-Type-Options: nosniff, X-Frame-Options: DENY,
Referrer-Policy: no-referrer, Cross-Origin-Opener-Policy: same-origin,
Cross-Origin-Resource-Policy: same-origin und X-XSS-Protection: 0 (der
Legacy-Filter ist fehlerhaft — aus ist am sichersten). COEP,
Permissions-Policy und HSTS sind opt-in.
Konfiguration
Abschnitt betitelt „Konfiguration“| Builder-Methode | Default |
|---|---|
withContentTypeOptions(flag?) | nosniff an |
withFrameOptions('DENY' | 'SAMEORIGIN' | false) | 'DENY' |
withReferrerPolicy(value | false) | 'no-referrer' |
withCrossOriginOpenerPolicy(v | false) | 'same-origin' |
withCrossOriginResourcePolicy(v | false) | 'same-origin' |
withCrossOriginEmbedderPolicy(v | false) | false (bricht Embeds; opt-in) |
withPermissionsPolicy(map | false) | false |
withHsts(options | false) | false (opt-in) |
const options = SecurityHeadersOptions.create() .withFrameOptions('SAMEORIGIN') .withHsts({ maxAge: 31_536_000, preload: true });CSP ist bewusst nicht Teil des Bündels — es ist zu app-spezifisch;
konfiguriere es mit contentSecurityPolicy.
HSTS allein — strictTransportSecurity
Abschnitt betitelt „HSTS allein — strictTransportSecurity“import { strictTransportSecurity, HstsOptions, withMiddleware } from 'actor-ts/http';
const hsts = strictTransportSecurity( HstsOptions.create().withMaxAge(31_536_000).withIncludeSubDomains().withPreload(),);Defaults: max-age 180 Tage + includeSubDomains. Der Header wird
bedingungslos gesetzt — ein Browser ignoriert ihn über reines HTTP, ein
Dev-Server ist also ein harmloser No-op, und Framework-Server sitzen ohnehin
meist hinter einem TLS-terminierenden Proxy.
Wie weiter
Abschnitt betitelt „Wie weiter“- CSP — Content-Security-Policy.
- CORS — Cross-Origin-Requests.
- Sicherheit — der vollständige empfohlene Stack.
