Content Security Policy (CSP) ist wichtig, um Ihre Next.js-Anwendung vor verschiedenen Sicherheitsbedrohungen wie Cross-Site-Scripting (XSS), Clickjacking und anderen Code-Injektionsangriffen zu schützen.
Mit 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.
Ein Nonce ist eine einzigartige, zufällige Zeichenfolge, die für die einmalige Verwendung erstellt wird. Er wird in Verbindung mit CSP verwendet, um bestimmte Inline-Skripte oder -Stile selektiv auszuführen und dabei strikte CSP-Direktiven zu umgehen.
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 den korrekten Nonce besitzen.
Middleware ermöglicht es Ihnen, Header hinzuzufügen und Nonces zu generieren, bevor die Seite gerendert wird.
Jedes Mal, wenn eine Seite aufgerufen wird, sollte ein neuer Nonce generiert werden. Das bedeutet, dass Sie dynamisches Rendering verwenden müssen, um Nonces hinzuzufügen.
Beispiel:
Middleware läuft standardmäßig für alle Anfragen. Sie können Middleware filtern, um nur auf bestimmten Pfaden zu laufen, indem Sie einen matcher verwenden.
Wir empfehlen, Prefetches (von next/link) und statische Assets zu ignorieren, die den CSP-Header nicht benötigen.