Content Security Policy (CSP)
Integration unter Berücksichtigung einer CSP
Die CSP (Content Security Policy) soll sicherstellen, dass Cross Site Scripting Attacken und ähnliche Angriffe auf Ihre Webseite nicht möglich sind.
Daher haben wir alle unsere Integrationen CSP-kompatibel gestaltet, beim Einbau müssen dennoch ein paar Dinge beachtet werden:
Erlaubte URLs
Um das Laden der benötigten Dateien zu erlauben, müssen Sie den Zugriff auf folgende Urls erlauben:
https://webcache-eu.datareporter.eu
Diese URL müssen sie als script-src
, style-src
und connect-src
erlauben.
Falls Sie nicht unser EU-basiertes CDN verwenden, müssen Sie stattdessen die URL webcache.datareporter.eu erlauben.
https://webcachex-eu.datareporter.eu (optional bei Schriftarten)
Falls sie eine unserer Schriftarten einbinden, müssen Sie diese URL als font-src
freigeben,
da alle Schriften von dort geladen werden.
https://swarmcrawler.datareporter.eu
Um die Funktionalitäten unseres SwarmCrawlers zu erlauben (sehr empfohlen) müssen Sie diese Url
als connect-src
erlauben.
https://c.datareporter.eu
Falls Sie die Statistikfunktionen und/oder die Einwilligungshistorie verwenden, müssen Sie diese Url
als connect-src
erlauben.
Nonce konfigurieren
Da der Banner einiges an dynamischen Code erzeugt und ausführt, müssen Sie ausserdem eine nonce
für die Bereiche script-src
und style-src
definieren. Diese müssen Sie auch beim script
-Tag der Einbindung angeben.
Es wird empfohlen, bei jedem Request eine zufällige Nonce serverseitig zu erzeugen und dynamisch in der Seite zu setzen. Natürlich funktioniert auch eine fixe Nonce, diese ist aber nicht so sicher wie eine dynamische.
Beispiele
Folgende CSP erlaubt den Zugriff auf alle Features von WebCare:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'nonce-webcare' https://webcache-eu.datareporter.eu; style-src 'self' 'nonce-webcare' https://webcache-eu.datareporter.eu; font-src 'self' https://webcachex-eu.datareporter.eu; connect-src https://swarmcrawler.datareporter.eu https://c.datareporter.eu https://webcache-eu.datareporter.eu">
Die zugehörige HTML - Einbindung sieht dann so aus:
...
<body>
...
<link href="https://webcache-eu.datareporter.eu/c/--id--/banner.css" rel="stylesheet">
<script src="https://webcache-eu.datareporter.eu/c/--id--/banner.js" type="text/javascript" charset="utf-8"></script>
<script nonce="webcare">
window.cookieconsent.initialise(dr_cookiebanner_options);
</script>
...
</body>
...
Zu beachten ist dabei, dass die nonce
beim script-Tag der nonce
in der CSP entsprechen muss,
in diesem Fall webcare
.
Gesamte HTML - Seite einer Einbindung
Hier finden Sie eine Einbindung von Banner und Datenschutzerklärung in eine Demoseite, die eine gültige CSP vorgibt:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'nonce-27389fhs76' https://webcache-eu.datareporter.eu; style-src 'self' 'nonce-27389fhs76' https://webcache-eu.datareporter.eu; font-src 'self' https://webcachex-eu.datareporter.eu; connect-src https://swarmcrawler.datareporter.eu https://c.datareporter.eu https://webcache-eu.datareporter.eu">
<title>Test CSP</title>
</head>
<body>
<link href="https://webcache-eu.datareporter.eu/c/---id---/banner.css" rel="stylesheet">
<script src="https://webcache-eu.datareporter.eu/c/---id---/banner.js" type="text/javascript" charset="utf-8"></script>
<script src="https://webcache-eu.datareporter.eu/c/---id---/privacynotice.js" type="text/javascript" charset="utf-8"></script>
<script nonce="27389fhs76">
window.cookieconsent.initialise(dr_cookiebanner_options);
</script>
</body>
</html>