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

Für REDAXO
^5.12
Veröffentlicht am
18.12.2025
Require / PHP
>=7, <9

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

Für REDAXO
^5.15
Veröffentlicht am
18.12.2025
Require / PHP
>=8.1, <9

🐛 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

Für REDAXO
^5.15
Veröffentlicht am
17.12.2025
Require / PHP
>=8.1, <9

Bugfix. Debugger war ggf. auch ohne Anmeldung sichtbar

4.3.1

Für REDAXO
^5.12
Veröffentlicht am
10.12.2025
Require / PHP
>=7, <9

⚠️ DRINGEND - Sicherheitsupdate

Diese Version enthält wichtige Sicherheitsfixes. Ein Update wird dringend empfohlen.

🔒 Sicherheitsfixes

  • API Input-Validierung: Alle Eingaben in rex_api_consent_manager werden 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

Für REDAXO
^5.12
Veröffentlicht am
10.12.2025
Require / PHP
>=7, <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

Bitte aktualisieren Sie auf Version 5.x für aktuelle Features, verbesserte Barrierefreiheit und zukünftige Sicherheitsupdates.

3.0.9

Für REDAXO
^5.8
Veröffentlicht am
10.12.2025
Require / PHP
>=7, <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

Für REDAXO
^5.15
Veröffentlicht am
10.12.2025
Require / PHP
>=8.1, <9

🚨 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.php und InlineConsent.php werden jetzt mit rex_escape() escaped
  • Cookie-Key Escaping: $_COOKIE Keys werden mit htmlspecialchars() escaped

5.0.5

Für REDAXO
^5.15
Veröffentlicht am
10.12.2025
Require / PHP
>=8.1, <9

🚨 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.php und InlineConsent.php werden jetzt mit rex_escape() escaped
  • Cookie-Key Escaping: $_COOKIE Keys werden mit htmlspecialchars() 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 consentmanager statt consent_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 uralten iwcc-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-Namen consent_manager statt des neuen consentmanager.
  • Service-spezifische Platzhalter-Texte: Die Felder placeholder_text und placeholder_image aus 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 ConsentManager und das Fragment cookiedb.php verwendeten 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

Für REDAXO
^5.15
Veröffentlicht am
09.12.2025
Require / PHP
>=8.1, <9

⚠️ 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 consentmanager statt consent_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 uralten iwcc-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-Namen consent_manager statt des neuen consentmanager. Dadurch funktionierte die serverseitige Consent-Prüfung für Inline-Platzhalter nicht korrekt.
  • Service-spezifische Platzhalter-Texte: Die Felder placeholder_text und placeholder_image aus 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 ConsentManager und das Fragment cookiedb.php verwendeten noch den alten Cookie-Namen consent_manager statt des neuen consentmanager. Dadurch wurden Consents nicht mehr in die Datenbank-Tabelle rex_consent_manager_consent_log geschrieben 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

Für REDAXO
^5.15
Veröffentlicht am
02.12.2025
Require / PHP
>=8.1, <9

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

Für REDAXO
^5.8
Veröffentlicht am
16.08.2022
Require / PHP
>=7, <9

What's Changed

Full Changelog: https://github.com/FriendsOfREDAXO/consent_manager/compare/3.0.7...3.0.8