Content-Security-Policy
contentSecurityPolicy() baut einen CSP-Header aus einer typisierten
Direktiven-Map. camelCase-Keys serialisieren zu ihren kebab-case
Direktiven-Namen, und deine Direktiven mergen über eine Helmet-nahe
Baseline.
import { contentSecurityPolicy, CspOptions, withMiddleware } from 'actor-ts/http';
const csp = contentSecurityPolicy( CspOptions.create().withDirectives({ scriptSrc: ["'self'", 'https://cdn.example'], imgSrc: ["'self'", 'data:', 'https:'], }),);
const routes = withMiddleware(csp, appRoutes);Die Baseline (useDefaults, standardmäßig an) ist default-src 'self',
object-src 'none', base-uri 'self', frame-ancestors 'self',
script-src 'self' und Co. Deine Direktiven überschreiben pro Direktive;
setze eine Direktive auf [], um sie zu entfernen, oder rufe
withoutDefaults(), um nur das Angegebene zu senden.
Konfiguration
Abschnitt betitelt „Konfiguration“| Builder-Methode | Zweck |
|---|---|
withDirectives(map) | Die Direktiven-Map (über die Baseline gemergt). |
withoutDefaults() | Nur die angegebenen Direktiven senden — Baseline überspringen. |
withReportOnly(flag?) | Content-Security-Policy-Report-Only senden statt durchzusetzen. |
upgradeInsecureRequests: true rendert die wertlose Direktive; reportUri
und reportTo werden unterstützt. Ein Source-Token mit ;, , oder
Whitespace wirft bei der Konstruktion — keine stille Header-Injection.
Wie weiter
Abschnitt betitelt „Wie weiter“- Security-Header — die übrigen Response-Header.
- HTML & XSS — Escaping ist die erste Linie; CSP ist Defense-in-Depth.
- Sicherheit — der empfohlene Stack.
