DSGVO-Cookie-Einwilligung für Entwickler: Ein Praxisleitfaden zur Compliance
tl;dr
Je nachdem, was deine Anwendung macht, hast du unterschiedliche — oder gar keine — Pflichten. Die Tabelle unten bietet eine schnelle Übersicht.
Einführung
Die Datenschutz-Grundverordnung (DSGVO), auf Englisch GDPR genannt, ist seit dem 25. Mai 2018 in Kraft und hat das Surferlebnis im Web deutlich verändert — du hast die Banner gesehen.
Entwickler sind besonders betroffen: Es ist unrealistisch, dass man neben der eigentlichen Entwicklungsarbeit auch noch juristische Texte interpretiert, vor allem, wenn man dafür schlecht bezahlt wird, nur um irgendeine Website online zu bringen.
Je nachdem, wen man fragt, heißt es, man müsse ein vollständiges Protokoll aller Einwilligungsaktionen aufzeichnen — oder dass auch ein „Alle akzeptieren“-Button ohne tatsächliche Funktion ausreiche. Beides kann stimmen, aber wer möchte schon ein Bußgeld in Millionenhöhe riskieren, um es selbst herauszufinden?
Dieser Artikel soll Entwicklern als Referenz dienen, um gängige Web-Anwendungsfälle abzudecken und die implementierte Funktionalität den minimal erforderlichen Compliance-Anforderungen zuzuordnen.
Warum die DSGVO bei Cookies wichtig ist
Cookies — kleine Textdateien auf den Geräten der Nutzer — können personenbezogene Daten wie IP-Adressen oder das Surfverhalten erfassen. Sobald sie Einzelpersonen identifizieren können, unterliegen sie der DSGVO.
Ein Verstoß kann teuer werden: bis zu 20 Millionen Euro oder 4 % des weltweiten Jahresumsatzes — je nachdem, welcher Betrag höher ist. Die Durchsetzung wird strenger: 2023 gab es einen deutlichen Anstieg an Bußgeldern für Cookie-Verstöße, darunter 40 Millionen € gegen ein großes Tech-Unternehmen wegen nicht DSGVO-konformer Einwilligungspraktiken.
Die ePrivacy-Richtlinie ergänzt die DSGVO und verlangt zudem eine ausdrückliche Einwilligung für nicht notwendige Cookies. Für Entwickler bedeutet das: Anwendungen müssen rechtliche Vorgaben erfüllen, ohne dass dabei die Funktionalität leidet.
Den offiziellen DSGVO-Text findest du hier:
EU GDPR-Verordnung (englischsprachig)
Zentrale Prinzipien für Entwickler
Die DSGVO und die ePrivacy-Richtlinie verlangen:
- Informierte Einwilligung: Nutzer müssen wissen, welche Daten Cookies erheben, zu welchem Zweck und von wem, bevor sie zustimmen.
- Granulare Kontrolle: Nutzer sollen auswählen können, welche Cookie-Kategorien (z. B. Analyse, Marketing) sie erlauben.
- Transparenz: Cookie-Richtlinien müssen klar, leicht zugänglich und vom Banner aus verlinkt sein.
- Einfache Widerrufbarkeit: Der Widerruf der Einwilligung muss genauso einfach sein wie die Zustimmung.
- Protokollierung: Die Einwilligungen müssen dokumentiert werden, um sie bei Prüfungen nachweisen zu können.
- Keine Cookie-Walls: Der Zugriff auf Inhalte darf nicht von der Zustimmung zu nicht notwendigen Cookies abhängig gemacht werden.
Diese Prinzipien greifen je nach Komplexität deiner Anwendung unterschiedlich — von statischen Websites bis hin zu komplexen SaaS-Plattformen.
Anwendungslogik vs. Cookie-Banner-Anforderungen
Die folgende Tabelle zeigt, wie sich unterschiedliche Anwendungsarten auf die Anforderungen an Cookie-Banner, die Speicherung der Einwilligung und weitere Aspekte auswirken. Sie reicht von einfachen statischen „Visitenkarten“-Websites bis zu SaaS-Plattformen mit hochsensiblen Daten.
Anwendungslogik |
Cookie-Banner-Anforderungen |
Speicherung der Einwilligung |
Zusätzliche Hinweise |
Reine statische Website (z. B. HTML-Portfolio ohne Tracking) |
Kein Banner erforderlich. Es werden nur unbedingt notwendige Cookies (z. B. Session-Cookies für grundlegende Funktionen) verwendet, die laut DSGVO und ePrivacy-Richtlinie keine Einwilligung erfordern. |
Keine erforderlich, da keine personenbezogenen Daten erhoben werden. |
Sicherstellen, dass keine Drittanbieter-Skripte (z. B. eingebettete Schriftarten oder Bilder) Cookies setzen. Mit einem Cookie-Scanner überprüfen. Eine einfache Cookie-Richtlinie einfügen, die erklärt, dass kein Tracking stattfindet. |
Statische Website mit Analytics (z. B. Website mit Google Analytics oder ähnlichem) |
Banner mit Checkboxen für Analyse-Cookies erforderlich. Muss enthalten:
- Klare Information über den Zweck der Cookies (z. B. „Google Analytics erfasst Seitenaufrufe“)
- Opt-in für nicht essenzielle Cookies (keine vorausgewählten Kästchen)
- Link zur Cookie-Richtlinie
- „Akzeptieren“- und „Ablehnen“-Buttons mit gleicher Hervorhebung
|
Einwilligungsprotokoll speichern (z. B. Benutzer-ID, Zeitstempel, akzeptierte Kategorien). Lokaler Speicher oder eine einfache Datenbank reicht bei kleinen Websites aus. |
Drittanbieter-Empfänger (z. B. Google) angeben. Richtlinie anpassen, wenn Analytics-Tools wechseln. Sicherstellen, dass Cookies erst nach Einwilligung geladen werden (z. B. mit Tag Manager). |
Dynamische Website mit Personalisierung (z. B. E-Commerce mit Benutzerkonten und Präferenzen) |
Banner mit granularen Optionen für Analyse-, Präferenz- und Marketing-Cookies. Sollte enthalten:
- Details zu Cookie-Typen (z. B. „Präferenz-Cookies speichern Login-Daten“)
- Granulare Schalter für jede Kategorie
- Klare Widerrufsmöglichkeit
- Link zu einem Präferenzzentrum
|
Datenbank für das Einwilligungsprotokoll: Benutzer-ID, Zeitstempel, gewählte Kategorien, Richtlinienversion, Widerrufsmöglichkeit. Einsatz einer Consent-Management-Plattform (CMP) wie Cookiebot empfohlen. |
Drittanbieter-Cookies (z. B. von Zahlungsanbietern) offenlegen. Regelmäßig auf neue Cookies prüfen. Präferenzzentrum bereitstellen, in dem Nutzer ihre Auswahl ändern können. |
SaaS mit Abonnements und Zahlungsabwicklung (z. B. Abo-Dienst mit Stripe) |
Umfassendes Banner mit Schaltern für notwendige, Analyse-, Marketing- und Funktions-Cookies. Sollte enthalten:
- Angaben zu Daten, die an Zahlungsanbieter weitergegeben werden
- Granulare Einwilligungsoptionen
- Link zum Präferenzzentrum
- Keine vorausgewählten nicht essenziellen Cookies
|
Robuste Datenbank für Einwilligungsprotokolle: Benutzer-ID, Zeitstempel, Kategorien, IP-Adresse, Geräteinfos, Richtlinienversion. CMPs werden für Skalierbarkeit empfohlen. |
DSGVO-Datenminimierungsprinzip bei Zahlungsdaten beachten. Drittanbieter (z. B. Stripe) in der Richtlinie nennen. Einwilligungsprotokolle sicher speichern. |
SaaS mit hochsensiblen Daten, unverschlüsselt (z. B. medizinische Plattform mit Gesundheitsdaten) |
Erweitertes Banner mit strenger Compliance:
- Explizite Einwilligung für alle nicht essenziellen Cookies
- Detaillierte Angaben zur Datenverarbeitung (z. B. „Analytics-Cookies erfassen Nutzungsverhalten“)
- Präferenzzentrum mit granularen Kontrollen
- Klare Widerrufsmöglichkeit
|
Unternehmensfähige Datenbank für Einwilligungsprotokolle: Benutzer-ID, Zeitstempel, Kategorien, IP, Gerät, Richtlinienversion, Nachweis der Einwilligung (z. B. Screenshot oder Klick-Log). CMPs mit Audit-Funktionen einsetzen. |
Gesundheitsdaten sind „besondere Kategorien“ laut DSGVO (Art. 9) und erfordern ausdrückliche Einwilligung und besondere Sicherheitsmaßnahmen. Datenschutz-Folgenabschätzung (DPIA) durchführen. Nutzer im Falle von Datenpannen binnen 72 Stunden benachrichtigen (Art. 34). |
SaaS mit hochsensiblen Daten, clientseitig verschlüsselt (z. B. medizinische Plattform, bei der der Anbieter keine Schlüssel hat) |
Gleiche Banner-Anforderungen wie bei unverschlüsselten SaaS, aber mit Hinweis in der Richtlinie, dass die Daten verschlüsselt sind (z. B. „Die Daten werden auf Ihrem Gerät verschlüsselt, wir haben keinen Zugriff darauf“). Granulare Schalter und Widerrufsoptionen bleiben erforderlich. |
Gleicher Audit-Trail wie bei unverschlüsseltem SaaS, aber mit Hinweis auf die Verschlüsselung, um den eingeschränkten Zugriff zu belegen. CMPs für einheitliche Umsetzung verwenden. |
Clientseitige Verschlüsselung reduziert die DSGVO-Pflichten (da der Anbieter keinen Zugriff auf die Daten hat), hebt aber die Einwilligungspflicht für Tracking-Cookies nicht auf. In der Richtlinie deutlich machen, dass die Daten für den Anbieter nicht zugänglich sind. DPIA kann trotzdem notwendig sein. |
Consent-Audit-Trail: Wann und wie
Ein Consent-Audit-Trail ist immer dann notwendig, wenn nicht essenzielle Cookies verwendet werden, da die DSGVO gemäß Artikel 7 einen Nachweis der Einwilligung verlangt.
So setzt man ihn um:
Was gespeichert werden sollte
- Benutzerkennung: Anonyme ID oder Session-ID (keine personenbezogenen Daten, außer wenn unbedingt erforderlich)
- Zeitstempel: Datum und Uhrzeit der Einwilligung
- Einwilligungsdetails: Akzeptierte Kategorien (z. B. Analyse, Marketing)
- Richtlinienversion: Verweis auf die zu diesem Zeitpunkt gültige Cookie-Richtlinie
- Methode: Wie die Einwilligung erteilt wurde (z. B. Banner-Klick, Präferenzzentrum)
- Widerrufsmöglichkeit: Nachweis, dass Nutzer ihre Einwilligung widerrufen können (z. B. Zugriff auf ein Präferenzzentrum)
Speichermechanismen
- Statische Websites mit Analytics: Lokaler Speicher (Local Storage) oder eine einfache JSON-Datei auf dem Server reicht für kleines Consent-Tracking aus
- Dynamische Websites / SaaS: Datenbank (z. B. MySQL, PostgreSQL) oder ein Consent Management Platform (CMP) wie OneTrust oder Cookiebot zur automatischen Protokollierung verwenden. Die gespeicherten Einwilligungsdaten müssen verschlüsselt werden (gemäß DSGVO Art. 32 – Sicherheit der Verarbeitung)
- Hochsensible SaaS-Systeme: Unternehmensfähige Datenbanken mit Audit-Funktionen (z. B. MongoDB mit Audit-Plugins oder CMPs mit Compliance-Dashboards). Protokolle mindestens 12 Monate oder nach den Vorgaben der lokalen Gesetze aufbewahren
Wann ein Audit-Trail notwendig ist
- Erforderlich: für jede Website, die nicht essenzielle Cookies verwendet
- Nicht erforderlich: für reine statische Websites ohne Cookies
- Besonders wichtig: für SaaS-Plattformen, vor allem wenn sie sensible Daten verarbeiten — hier sind robuste Audit-Trails entscheidend, um die Einhaltung bei Prüfungen nachweisen zu können
Umgang mit verschlüsselten personenbezogenen Daten
Für SaaS-Plattformen, die sehr persönliche Daten (z. B. medizinische Inhalte) clientseitig verschlüsselt speichern und keinen Zugriff auf die Entschlüsselungsschlüssel haben, gelten abgeschwächte, aber nicht aufgehobene DSGVO-Pflichten:
- Datenverarbeitung: Wenn der SaaS-Anbieter keinen Zugriff auf die Daten hat (z. B. Ende-zu-Ende-Verschlüsselung), gilt er für diese Daten nicht als „Verarbeiter“ im Sinne der DSGVO (Art. 4).
Trotzdem benötigen Cookies für Tracking oder Analytics weiterhin eine Einwilligung. - Cookie-Compliance: Tracking-Cookies (z. B. für Nutzungsanalysen) fallen trotzdem unter DSGVO und ePrivacy-Richtlinie. Du musst also trotzdem ein Consent-Banner und einen Audit-Trail implementieren.
- Klarheit in der Datenschutzerklärung: Erkläre ausdrücklich in deiner Cookie- und Datenschutzrichtlinie, dass die Nutzerdaten clientseitig verschlüsselt und für den SaaS-Anbieter nicht zugänglich sind. Das schafft Vertrauen und verdeutlicht deine eingeschränkte Rolle bei der Datenverarbeitung.
- DPIA-Prüfung: Auch bei Verschlüsselung kann eine Datenschutz-Folgenabschätzung (DPIA) nach Art. 35 erforderlich sein, wenn Tracking-Cookies personenbezogene Daten verarbeiten. Im Zweifel juristischen Rat einholen.
Umsetzungstipps für Entwickler
- CMP verwenden: Es gibt Tools, die bei der Umsetzung helfen — von automatisierten Protokollen bis zur Anpassung des Cookie-Banners:
- Geo-Targeting: Nutze Geolokalisierung, um Cookie-Banner nur EU-Nutzern anzuzeigen, da die DSGVO für EU-Bürger gilt (unabhängig vom Standort deines Unternehmens, Art. 3).
- Keine Dark Patterns: Stelle sicher, dass „Ablehnen“-Buttons genauso auffällig sind wie „Akzeptieren“-Buttons. Vorgehakte Kästchen für nicht essenzielle Cookies sind nicht DSGVO-konform.
- Regelmäßige Audits: Überprüfe deine Website vierteljährlich auf neue Cookies, die durch Drittanbieter-Skripte hinzukommen (z. B. nach Updates von Analysetools). Gilt natürlich nur, wenn sich etwas an der Funktion oder den Vorschriften ändert.
- Sichere Speicherung: Verschlüssele Einwilligungsprotokolle und speichere sie sicher, um das DSGVO-Prinzip der Integrität und Vertraulichkeit einzuhalten.
- Nutzerfreundliche Richtlinien: Schreibe Cookie-Richtlinien in klarer, verständlicher Sprache ohne Fachjargon. Verlinke sie im Footer deiner Website und im Banner.
Beispiel für einen Cookie-Banner
Unten findest du ein minimales Beispiel für einen DSGVO-konformen Cookie-Banner für eine statische Website mit Analytics (mit JavaScript und Local Storage).
Für SaaS-Systeme ist es empfehlenswert, aus Skalierbarkeitsgründen eine CMP zu integriere
<!DOCTYPE html>
<html>
<head>
<title>GDPR Cookie Banner</title>
<style>
.cookie-banner {
position: fixed;
bottom: 0;
width: 100%;
background: #333;
color: #fff;
padding: 20px;
display: none;
justify-content: center;
align-items: center;
z-index: 1000;
}
.cookie-banner button {
margin: 0 10px;
padding: 10px 20px;
cursor: pointer;
}
.cookie-banner a {
color: #fff;
text-decoration: underline;
}
</style>
</head>
<body>
<div id="cookieBanner" class="cookie-banner">
We use cookies for analytics. <a href="/cookie-policy">Learn more</a>.
<input type="checkbox" id="analyticsConsent"> Enable Analytics Cookies
<button onclick="saveConsent()">Save</button>
<button onclick="rejectAll()">Reject All</button>
</div>
<script>
// Check if consent is already given
if (!localStorage.getItem('cookieConsent')) {
document.getElementById('cookieBanner').style.display = 'flex';
}
function saveConsent() {
const analyticsConsent = document.getElementById('analyticsConsent').checked;
const consentData = {
analytics: analyticsConsent,
timestamp: new Date().toISOString(),
policyVersion: '1.0'
};
localStorage.setItem('cookieConsent', JSON.stringify(consentData));
document.getElementById('cookieBanner').style.display = 'none';
if (analyticsConsent) {
// Load analytics script (e.g., Google Analytics)
// Example: const script = document.createElement('script'); script.src = 'ga.js'; document.head.appendChild(script);
}
}
function rejectAll() {
localStorage.setItem('cookieConsent', JSON.stringify({
analytics: false,
timestamp: new Date().toISOString(),
policyVersion: '1.0'
}));
document.getElementById('cookieBanner').style.display = 'none';
}
</script>
</body>
</html>