0Pricing
Vue Academy · Lektion

Content Security Policy (CSP) mit Vue

CSP-Header, nonce-basierte Skripte, hash-basierte Richtlinien und CSP-Konfiguration in Vite

Content Security Policy (CSP) mit Vue ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist CSP

Content Security Policy ist ein HTTP-Response-Header, der dem Browser mitteilt, aus welchen Quellen Skripte, Styles, Bilder und Verbindungen geladen werden dürfen. Sie ist eine starke zweite Verteidigungslinie gegen XSS – selbst eingeschleuste Skripte werden blockiert, wenn ihre Quelle nicht erlaubt ist.

Der Header

CSP wird über den Response-Header Content-Security-Policy bereitgestellt. Jede Direktive führt die erlaubten Quellen für einen Ressourcentyp auf.

Content-Security-Policy: default-src 'self'; script-src 'self';

Skriptquellen einschränken

Die Direktive script-src legt fest, aus welchen Quellen Skripte geladen werden dürfen. Wenn Sie sie auf 'self' beschränken, werden Inline-Skripte und Drittanbieter-Skripte blockiert, die ein Angreifer einschleusen könnte.

Content-Security-Policy: script-src 'self' https://cdn.trusted.com;

unsafe-inline vermeiden

'unsafe-inline' erlaubt Inline-Skripte und Attribute für Event-Handler – genau das, was XSS-Angriffe ausnutzen. Eine strenge Richtlinie lässt diese Option weg, sodass eingeschleuster Inline-Code nicht ausgeführt wird.

unsafe-eval vermeiden

'unsafe-eval' erlaubt eval und den Function-Konstruktor. Der Vue-3-Runtime-Build benötigt dies nicht, da Templates vorkompiliert werden. Sie können und sollten diese Option daher weglassen.

Inline-Skripte mit Nonce

Wenn Sie tatsächlich ein Inline-Skript benötigen, versehen Sie es mit einer zufälligen, pro Response vergebenen nonce und führen Sie diese Nonce in der Richtlinie auf. Nur Skripte mit der passenden Nonce werden ausgeführt.

<!-- header includes: script-src 'nonce-abc123' -->
<script nonce="abc123">
  // allowed because nonce matches
</script>

Warum Nonces besser sind als unsafe-inline

Eine Nonce ist nicht vorhersehbar und ändert sich bei jeder Response. Ein Angreifer, der ein Skript einschleust, kann sie daher nicht erraten. So bleiben Inline-Skripte funktionsfähig, ohne das umfassende Risiko von unsafe-inline.

CSP und Vue-Styles

Vue und viele UI-Bibliotheken fügen Styles zur Laufzeit ein. Erlauben Sie dies entweder über style-src mit einer Nonce oder einem Hash, oder lagern Sie CSS in Dateien aus, sodass style-src 'self' ausreicht.

Content-Security-Policy: style-src 'self';

Vite-CSP-Nonce-Plugin für die Entwicklung

Der Entwicklungsserver von Vite fügt Skripte ein, was zu Konflikten mit einer strengen CSP führen kann. Ein CSP-Nonce-Plugin versieht die von Vite eingefügten Tags während der Entwicklung mit einer passenden Nonce.

// vite.config.ts
import { defineConfig } from "vite";

export default defineConfig({
  html: {
    cspNonce: "DEV_NONCE"
  }
});

connect-src für APIs

Beschränken Sie mit connect-src, wohin die App Daten abrufen darf, damit eingeschleuster Code keine Daten an eine vom Angreifer kontrollierte Domain übertragen kann.

Content-Security-Policy: connect-src 'self' https://api.example.com;

Report-Only-Modus

Führen Sie CSP sicher mit Content-Security-Policy-Report-Only ein. Diese Variante meldet Verstöße, ohne sie zu blockieren, sodass Sie die Richtlinie vor ihrer Durchsetzung anpassen können.

Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-report;

Kurzer Check

Welchen Wert einer CSP-Direktive sollten Sie vermeiden, damit der XSS-Schutz stark bleibt?

Zusammenfassung

CSP ist ein HTTP-Header, der erlaubte Quellen für Skripte, Styles und Verbindungen einschränkt und eingeschleusten Code blockiert, selbst wenn ein XSS-Angriff erfolgreich war. Vermeiden Sie unsafe-inline und unsafe-eval. Verwenden Sie für erforderliche Inline-Skripte Nonces pro Response und in der Entwicklung ein Vite-CSP-Nonce-Plugin. Führen Sie CSP zunächst im Report-Only-Modus ein, bevor Sie sie durchsetzen.

Häufig gestellte Fragen

Ist die Lektion „Content Security Policy (CSP) mit Vue“ kostenlos?

Ja — der vollständige Text von „Content Security Policy (CSP) mit Vue“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Content Security Policy (CSP) mit Vue“?

CSP-Header, nonce-basierte Skripte, hash-basierte Richtlinien und CSP-Konfiguration in Vite Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Vue Academy zu starten?

Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Content Security Policy (CSP) mit Vue“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?

Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. XSS-Schutz in Vue
  2. Content Security Policy (CSP) mit Vue
  3. CSRF-Schutz in Vue-SPAs
  4. Sichere Authentifizierungsmuster
← Zurück zu Vue Academy