AddOn
Consent Manager
Beschreibung
Das Nachfolge-Addon von iwcc (Cookie-Gedöns).Stellt ein Opt-In Cookie-Banner zur Verfügung. Cookies können in selbst definierte Gruppen zusammengefasst werden. Der Website-Besucher bekommt eine Cookie-Box angezeigt in der er allen oder einzelnen Gruppen zustimmen kann. Es existiert eine Gruppe Notwendig, die nicht deaktiviert werden kann. Die Cookie-Box kann erneut (zum Beispiel über einen Link im Impressum) aufgerufen werden, um die Auswahl nachträglich zu ändern. Alle Texte sowie die Gestaltung der Cookie-Box sind anpassbar.
github.com/FriendsOfREDAXO/consent_manager
Umsetzung
Versionen
4.5.7
Fixes:
- Serverseitiges Cookie-Cleanup gegen wiederholte Consent-Aufforderungen
- Domain-Parameter-Migration Issue #317 follow-up
- Browser-übergreifende Lösung für Wildcard-Cookie-Probleme
5.1.3
🐛 Bugfix
Theme-Editor Button-Hintergrundfarbe: Button-Hintergrundfarbe wird jetzt korrekt aus dem Theme-Editor übernommen.
Technische Details
- SCSS-Variable-Interpolation in
Theme::generateA11yThemeScss()korrigiert - Backslash-Escape vor \$button-bg und \$button-text entfernt
- Button-Hintergrund- und Textfarben werden jetzt korrekt aus Formular übernommen
5.1.2
Bugfix. Debugger war ggf. auch ohne Anmeldung sichtbar
4.3.1
⚠️ DRINGEND - Sicherheitsupdate
Diese Version enthält wichtige Sicherheitsfixes. Ein Update wird dringend empfohlen.
🔒 Sicherheitsfixes
- API Input-Validierung: Alle Eingaben in
rex_api_consent_managerwerden jetzt strikt validiert:- Domain-Format wird auf gültige Hostname-Zeichen geprüft
- ConsentID-Format wird auf das uniqid-Format beschränkt
- Consent-UIDs werden auf alphanumerische Zeichen, Bindestriche und Unterstriche validiert
- CacheLogID wird auf gültiges Format geprüft
- Ungültige Werte werden verworfen, um XSS-Angriffe über manipulierte Cookies zu verhindern
- Domain-Normalisierung: Domains werden beim Speichern ins Log in Kleinbuchstaben normalisiert
Backport der Security-Fixes aus 4.5.6 für Nutzer der 4.3.x-Linie.
Vielen Dank an die Deutsche Telekom Security GmbH für die verantwortungsvolle Meldung der Schwachstellen.
4.5.6
🚨 SECURITY UPDATE - Dringend aktualisieren und upgraden!
Diese Version behebt eine kritische Stored XSS-Schwachstelle, die von Telekom Security gemeldet wurde. Die Schwachstelle existierte seit der ersten Version des Addons und ermöglichte es Angreifern, über manipulierte Consent-Cookies bösartigen JavaScript-Code einzuschleusen.
Vielen Dank an die Deutsche Telekom Security GmbH für die verantwortungsvolle Meldung dieser Schwachstelle.
🔒 Sicherheitsfix
- Stored XSS behoben: Alle Cookie-Werte werden jetzt vor der Ausgabe im Debug-Widget escaped
⚠️ Wichtiger Hinweis
Bitte aktualisieren Sie auf Version 5.x für aktuelle Features, verbesserte Barrierefreiheit und zukünftige Sicherheitsupdates.
3.0.9
🚨 SECURITY UPDATE - Dringend aktualisieren und upgraden!
Diese Version behebt eine kritische Stored XSS-Schwachstelle, die von Telekom Security gemeldet wurde. Die Schwachstelle existierte seit der ersten Version des Addons und ermöglichte es Angreifern, über manipulierte Consent-Cookies bösartigen JavaScript-Code einzuschleusen.
Vielen Dank an die Deutsche Telekom Security GmbH für die verantwortungsvolle Meldung dieser Schwachstelle.
🔒 Sicherheitsfix
- Stored XSS behoben: Alle Cookie-Werte werden jetzt vor der Ausgabe im Debug-Widget escaped
⚠️ Wichtiger Hinweis
Diese Version 3.x befindet sich im End-of-Life-Status. Bitte aktualisieren Sie auf Version 5.x für aktuelle Features und Sicherheitsupdates.
5.1.0
🚨 SECURITY UPDATE - Dringend aktualisieren!
Diese Version behebt eine kritische Stored XSS-Schwachstelle, die von Telekom Security gemeldet wurde. Die Schwachstelle existierte seit der ersten Version des Addons und ermöglichte es Angreifern, über manipulierte Consent-Cookies bösartigen JavaScript-Code einzuschleusen.
Betroffene Versionen: Alle Versionen vor 5.0.5, 4.5.6 und 3.0.9
Empfehlung: Sofortiges Update auf die neueste Version Ihrer Major-Release-Linie.
🎨 Neuer Theme-Editor
Der Theme-Editor wurde komplett überarbeitet und bietet jetzt umfangreiche Anpassungsmöglichkeiten für barrierefreie Consent-Dialoge:
- WCAG 2.1 Kontrast-Prüfung: Live-Badges zeigen Kontrastverhältnisse (AAA/AA/unzureichend)
- Automatische Textfarben: Berechnet optimale Text-/Hintergrund-Kombinationen per Klick
- Details-Bereich anpassbar: Separate Farben für den aufgeklappten Cookie-Details-Bereich
- Details anzeigen Button: Farbe, Hover-Farbe und Rahmen individuell einstellbar
- Button-Styles: Filled/Outline-Stil, individueller Eckenradius, Rahmenbreite und -farbe
- Schatten-Effekte: 5 Schatten-Stile (Kein/Dezent/Mittel/Stark/Schwebend) mit Farbauswahl
- Live-Vorschauen: Alle Änderungen sofort sichtbar in Vorschau-Elementen
- Fragment-Architektur: Code nach REDAXO-Konventionen refaktoriert
🐛 Bugfixes
- Debug-Widget: Cookie-Name korrigiert (consent_manager → consentmanager)
- Debug-Widget: Fehlerhafte Versions-Warnung entfernt
🔒 Security Fixes
- Stored XSS via Consent-Cookie behoben: Input-Validierung für alle Cookie-Parameter (
domain,consentid,cachelogid,consents) in der API - XSS-Escaping in Fragmenten: Alle Datenbankausgaben in
box.php,cookiedb.phpundInlineConsent.phpwerden jetzt mitrex_escape()escaped - Cookie-Key Escaping:
$_COOKIEKeys werden mithtmlspecialchars()escaped
5.0.5
🚨 SECURITY UPDATE - Dringend aktualisieren!
Diese Version behebt eine kritische Stored XSS-Schwachstelle, die von Telekom Security gemeldet wurde. Die Schwachstelle existierte seit der ersten Version des Addons und ermöglichte es Angreifern, über manipulierte Consent-Cookies bösartigen JavaScript-Code einzuschleusen.
Betroffene Versionen: Alle Versionen vor 5.0.5, 4.5.6 und 3.0.9
Empfehlung: Sofortiges Update auf die neueste Version Ihrer Major-Release-Linie.
🔒 Security Fixes
- Stored XSS via Consent-Cookie behoben: Input-Validierung für alle Cookie-Parameter (
domain,consentid,cachelogid,consents) in der API - XSS-Escaping in Fragmenten: Alle Datenbankausgaben in
box.php,cookiedb.phpundInlineConsent.phpwerden jetzt mitrex_escape()escaped - Cookie-Key Escaping:
$_COOKIEKeys werden mithtmlspecialchars()escaped
Validierungsregeln (API)
| Parameter | Regex | Beschreibung |
|---|---|---|
domain |
/^[a-zA-Z0-9][a-zA-Z0-9.-]*[a-zA-Z0-9]$/ |
Nur gültige Hostname-Zeichen |
consentid |
/^[a-f0-9.]+$/i |
uniqid-Format |
cachelogid |
/^[a-zA-Z0-9._-]+$/ |
Alphanumerisch + Punkt/Bindestrich |
consents[] |
/^[a-zA-Z0-9_-]+$/ |
Nur gültige Cookie-UIDs |
⚠️ Wichtig: Namespace-Änderung (seit 5.0.0)
Die Klassen haben jetzt einen Namespace bekommen: FriendsOfRedaxo\ConsentManager
Version 5.0.0 - Major Release
Breaking Changes
- Cookie-Name geändert: Der Consent-Cookie heißt jetzt
consentmanagerstattconsent_manager(ohne Unterstrich). Dies behebt Kompatibilitätsprobleme nach Updates und erzwingt eine Neubestätigung bei Benutzern, was DSGVO-konform bei größeren Änderungen empfohlen ist. - Legacy iwcc-Migration entfernt: Der Migrations-Code für das alte
iwcc-Addon wurde entfernt. Wer noch vom uralteniwcc-Addon migrieren muss, sollte erst auf Version 4.x updaten.
🚀 Neue Features & Verbesserungen
- Async Fetch API: Synchroner XMLHttpRequest durch asynchrone Fetch API ersetzt - verbessert Performance und beseitigt Browser-Warnungen
- CSP-Kompatibilität:
new Function()Validierung entfernt für strikte Content Security Policy Kompatibilität - Verbesserte Fehlerbehandlung: Detaillierte CSP/CORS-Fehlermeldungen mit Lösungshinweisen
- URL Encoding: Parameter werden jetzt korrekt URL-encoded für bessere Sicherheit
- Code-Optimierungen: Redundanter Code entfernt, Performance-Verbesserungen (68 Zeilen weniger)
- Command log-delete: aktiviert und verfügbar (in package.yml registriert)
- Cronjob ThumbnailCleanup: ab dieser Version aktiviert und verfügbar
🛠️ Technische Änderungen
- Namespace FriendsOfRedaxo\ConsentManager - Alle Klassen wurden in den neuen Namespace verschoben
- Alte Klassennamen stehen weiterhin zur Verfügung (deprecated), siehe Namespace-Guide.md
- Fragmente in
fragments/ConsentManager/verschoben - PHP ^8.1 und REDAXO ^5.15 erforderlich
🐛 Bugfixes 5.0.1 - 5.0.4
- Installer-Update repariert: Die Cache-Klasse wird jetzt beim Update explizit geladen, da der Autoloader zu diesem Zeitpunkt noch nicht aktiv ist.
- InlineConsent Platzhalter repariert: Die Methode
Utility::has_consent()verwendete noch den alten Cookie-Namenconsent_managerstatt des neuenconsentmanager. - Service-spezifische Platzhalter-Texte: Die Felder
placeholder_textundplaceholder_imageaus dem Cookie/Service-Eintrag werden jetzt im Inline-Consent-Fragment korrekt verwendet. - Backend-Dokumentation: Hinweistexte für die Platzhalter-Felder im Cookie-Formular hinzugefügt.
- Consent-Log repariert: Die API-Klasse
ConsentManagerund das Fragmentcookiedb.phpverwendeten noch den alten Cookie-Namen. - Fokus auf Dialog statt Button: Der initiale Fokus beim Öffnen des Consent-Dialogs liegt jetzt auf dem Dialog-Wrapper statt auf dem ersten Button (WCAG 2.1 konform).
🙏 Danksagung
Vielen Dank an Telekom Security für das verantwortungsvolle Melden der Sicherheitslücke und die professionelle Zusammenarbeit im Disclosure-Prozess.
Danke an @christophboecker für die großartige Unterstützung und Hilfe 🙏
5.0.4
⚠️ Wichtig: Namespace-Änderung
Die Klassen haben jetzt einen Namespace bekommen: FriendsOfRedaxo\ConsentManager
Version 5.0.0 - Major Release
Breaking Changes
- Cookie-Name geändert: Der Consent-Cookie heißt jetzt
consentmanagerstattconsent_manager(ohne Unterstrich). Dies behebt Kompatibilitätsprobleme nach Updates und erzwingt eine Neubestätigung bei Benutzern, was DSGVO-konform bei größeren Änderungen empfohlen ist. - Legacy iwcc-Migration entfernt: Der Migrations-Code für das alte
iwcc-Addon wurde entfernt. Wer noch vom uralteniwcc-Addon migrieren muss, sollte erst auf Version 4.x updaten.
Danke Schön
Danke an @christophboecker für die großartige Unterstützung und Hilfe 🙏
🚀 Neue Features & Verbesserungen
- Async Fetch API: Synchroner XMLHttpRequest durch asynchrone Fetch API ersetzt - verbessert Performance und beseitigt Browser-Warnungen
- CSP-Kompatibilität:
new Function()Validierung entfernt für strikte Content Security Policy Kompatibilität - Verbesserte Fehlerbehandlung: Detaillierte CSP/CORS-Fehlermeldungen mit Lösungshinweisen
- URL Encoding: Parameter werden jetzt korrekt URL-encoded für bessere Sicherheit
- Code-Optimierungen: Redundanter Code entfernt, Performance-Verbesserungen (68 Zeilen weniger)
- Command log-delete: aktiviert und verfügbar (in package.yml registriert)
- Cronjob ThumbnailCleanup: ab dieser Version aktiviert und verfügbar
🛠️ Technische Änderungen
- Namespace FriendsOfRedaxo\ConsentManager - Alle Klassen wurden in den neuen Namespace verschoben
- Alte Klassennamen stehen weiterhin zur Verfügung (deprecated), siehe Namespace-Guide.md
- Fragmente in
fragments/ConsentManager/verschoben - PHP ^8.1 und REDAXO ^5.15 erforderlich
🐛 Bugfixes 5.0.1 - 5.0.4
- Installer-Update repariert: Die Cache-Klasse wird jetzt beim Update explizit geladen, da der Autoloader zu diesem Zeitpunkt noch nicht aktiv ist.
- InlineConsent Platzhalter repariert: Die Methode
Utility::has_consent()verwendete noch den alten Cookie-Namenconsent_managerstatt des neuenconsentmanager. Dadurch funktionierte die serverseitige Consent-Prüfung für Inline-Platzhalter nicht korrekt. - Service-spezifische Platzhalter-Texte: Die Felder
placeholder_textundplaceholder_imageaus dem Cookie/Service-Eintrag werden jetzt im Inline-Consent-Fragment korrekt verwendet. Priorität: 1. Explizit übergebene Options, 2. Service-Daten aus DB, 3. Globaler Fallback aus Texte-Tabelle. - Backend-Dokumentation: Hinweistexte für die Platzhalter-Felder im Cookie-Formular hinzugefügt, die erklären dass diese nur für Inline-Consent relevant sind.
- Consent-Log repariert: Die API-Klasse
ConsentManagerund das Fragmentcookiedb.phpverwendeten noch den alten Cookie-Namenconsent_managerstatt des neuenconsentmanager. Dadurch wurden Consents nicht mehr in die Datenbank-Tabellerex_consent_manager_consent_loggeschrieben und die Consent-Historie wurde nicht angezeigt. - Fokus auf Dialog statt Button: Der initiale Fokus beim Öffnen des Consent-Dialogs liegt jetzt auf dem Dialog-Wrapper statt auf dem ersten Button. Dies verhindert, dass Nutzer unbewusst auf "Alle ablehnen" fokussiert werden und entspricht den WCAG 2.1 Richtlinien für modale Dialoge.
5.0.0-beta2
BC Changes:
- Bitte Readme beachten. Aufgrund des Namespaces muss der Consent-Manager Code in de Templates oder an anderer Stelle angepasst werden
- Das cookie wurde von consent_manager zu consentmanager umbenannt.
3.0.8
What's Changed
- fix warning by @tyrant88 in https://github.com/FriendsOfREDAXO/consent_manager/pull/240
- fix: Speichern einer Gruppe auch wenn noch keine domain existiert by @tyrant88 in https://github.com/FriendsOfREDAXO/consent_manager/pull/241
- PHP 8.1 - Bugfix by @tbaddade in https://github.com/FriendsOfREDAXO/consent_manager/pull/242
Full Changelog: https://github.com/FriendsOfREDAXO/consent_manager/compare/3.0.7...3.0.8