Einrichten einer Content Security Policy (CSP) für Ihre Next.js-Anwendung
Content Security Policy (CSP) ist wichtig, um Ihre Next.js-Anwendung vor verschiedenen Sicherheitsbedrohungen wie Cross-Site-Scripting (XSS), Clickjacking und anderen Code-Injection-Angriffen zu schützen.
Durch die Verwendung von CSP können Entwickler festlegen, welche Ursprünge für Inhaltsquellen, Skripte, Stylesheets, Bilder, Schriftarten, Objekte, Medien (Audio, Video), Iframes und mehr zulässig sind.
Beispiele
Nonces
Ein Nonce ist eine einmalig verwendete, zufällige Zeichenkette. Es wird in Verbindung mit CSP verwendet, um bestimmte Inline-Skripte oder -Styles selektiv auszuführen und dabei strenge CSP-Richtlinien zu umgehen.
Warum ein Nonce verwenden?
Obwohl CSPs entwickelt wurden, um bösartige Skripte zu blockieren, gibt es legitime Szenarien, in denen Inline-Skripte notwendig sind. In solchen Fällen bieten Nonces eine Möglichkeit, diese Skripte auszuführen, wenn sie das korrekte Nonce haben.
Hinzufügen eines Nonces mit Middleware
Middleware ermöglicht es Ihnen, Header hinzuzufügen und Nonces zu generieren, bevor die Seite gerendert wird.
Bei jedem Aufruf einer Seite sollte ein neues Nonce generiert werden. Das bedeutet, dass Sie dynamisches Rendering verwenden müssen, um Nonces hinzuzufügen.
Beispiel:
Standardmäßig wird Middleware bei allen Anfragen ausgeführt. Sie können Middleware mit einem matcher
auf bestimmte Pfade filtern.
Wir empfehlen, Prefetches (von next/link
) und statische Assets, die den CSP-Header nicht benötigen, zu ignorieren.
Lesen des Nonces
Sie können das Nonce aus einer Server-Komponente mit headers
lesen:
Ohne Nonces
Für Anwendungen, die keine Nonces benötigen, können Sie den CSP-Header direkt in Ihrer next.config.js
-Datei festlegen:
Versionsverlauf
Wir empfehlen die Verwendung von Next.js v13.4.20+
, um Nonces korrekt zu verarbeiten und anzuwenden.