TYPO3 Plugin:

ujamii_dsgvo

ujamii-dsgvo-dsgvo

Datenschutz/DSGVO Compliance Erweiterung für TYPO3

  1. Beschreibung
  2. Installation
  3. Verwendung
  4. Erweiterung der Datenbankbereinigung
  5. Credits

Beschreibung

Am 25. Mai 2018 treten die neuen Gesetze zum Datenschutz in Kraft. Mit Bußgeldern von bis zu 20 Mio. Euro. ?, oder 4% von globalen Umsatz für internationale Unternehmen, jede Organisation (kommerziell UND nicht-kommerziell), die in der europäischen Region tätig ist Die Union muss die in den verlinkten Dokumenten beschriebenen Vorschriften einhalten.

Für TYPO3-Websites hat dies mehrere Auswirkungen:

  • private Daten in der Datenbank müssen gelöscht werden (anstatt gelöscht=1)
  • die Übertragung der Daten an den Webserver oder einen Mail-Dienst muss verschlüsselt werden
  • impressum und Datenschutzinformationen müssen auf einer separaten Website stehen (zumindest in Deutschland)
  • die Benutzer müssen über permanente Cookies informiert werden und haben die Möglichkeit, sich für Tracking-Dienste zu entscheiden
  • ...

Diese Erweiterung soll helfen, mögliche Probleme zu identifizieren und regelmäßige Aufgaben wie die Bereinigung der Datenbank durchzuführen und löschen Sie "gelöschte" Datensätze sowie ältere Daten, die in Formularen übermittelt wurden

Links

Installation

  1. Holen Sie sich die Dateien
    1. installation über composer: composer erfordert ujamii/ujamii-dsgvo
    2. installation über das Archiv: Herunterladen und Entpacken im typo3conf-Verzeichnis, Umbenennen des Ordners in ujamii_dsgvo
  2. aktivieren Sie die Erweiterung im Backend (ggf. muss der Autoloading-Cache geleert werden)
  3. ein neues Submodul "DSGVO" im Hauptmodul "web" erscheint

Verwendung

  1. Datenbereinigung
  2. Cookie-Einwilligung
  3. Deaktivieren von Cookies
    1. Google Analytics
    2. Matomo (Piwki)

Betriebsarten

Die Erweiterung kann Datensätze in der Datenbank zählen, anonymisieren oder wirklich löschen. Das Backend-Modul verwendet den Auswahlmodus, um die Übersicht anzuzeigen. Mit den beiden Schaltflächen unterhalb der Tabellenübersicht, können Sie den Prozess des Überschreibens der Datensätze mit Dummy-Daten (Anonymisierung) oder des Löschens starten.

Das Löschen von Datensätzen kann der Datenintegrität schaden, da TYPO3 standardmäßig keine Einschränkungen auf Datenbankebene verwendet. Der Löschmodus ist also NICHT der Standardmodus! Wenn Sie die Datensätze wirklich löschen möchten, verwenden Sie diesen Modus/Button explizit. Bitte beachten Sie, dass, wenn Sie weitere Tabellen zur Konfiguration hinzufügen, der Anonymisierungsmodus nichts bewirkt, solange es keine gibt anonymisierung des Teilsatzes! Außerdem müssen Sie selbst für das richtige Datenformat sorgen. Schreiben von falschen Datentypen in das Feld = Wert liste kann zu Fehlern führen. Der Anonymisierungsmodus schreibt auch in die Felder tstamp und crdate (falls im TCA konfiguriert). Der neue Wert dieser Felder wird angezeigt dieser Wert ist auch das Kennzeichen, dass diese Zeilen bereits behandelt wurden. So werden Zeilen mit tstamp = 0 UND crdate = 0 nicht gezählt/bearbeitet werden. Wenn Sie selbst Datensätze von außerhalb des TYPO3-Datahandlers erstellen, überprüfen Sie bitte, ob diese Felder nicht 0 sind nach dem Schreiben Ihrer Datenbank

Für mehr Flexibilität werden die Werte für übergeordnete Daten in der Datenbank über PageTS konfiguriert. Wenn Sie also Ihre eigene Tabelle hinzufügen möchten, fügen Sie einfach den anonymierten Teil hinzu und die Erweiterung kümmert sich auch um Ihre Daten

Im TYPO3-Backend

Klicken Sie auf das Modulsymbol im Hauptmenü des Backend (innerhalb von "web"). Sie sehen eine Übersicht für jede konfigurierte Konfiguration erweiterung und Datenbanktabelle. Grüne Zeilen bedeuten nichts zu löschen, rote Zeilen bedeuten, dass etwas gelöscht/anonymisiert wird, wenn klicken Sie auf die rote Schaltfläche "Löschen" oder die orangefarbene Schaltfläche "Anonymisieren" am Ende der Seite. Die Anzahl der betroffenen Zeilen wird auch angezeigt auf die Übersichtsseite.

Als CommandController auf der Shell

Ein Aufruf wie typo3/cli_dispatch.phpsh extbase cleanup:cleandatabase --page-uid=1 --mode=select gibt so etwas aus:

2018-04-06 17:27:01
FALSCH bedeutet Erweiterung nicht installiert, Integer ist die Anzahl der betroffenen Datensätze.
array(5 Elemente)
    kern => Array(2 Elemente)
       fe_users => 0 (integer)
       be_users => 0 (integer)
    powermail => array(1 Element)
       tx_powermail_domain_model_mail => 0 (integer)
    formhandler => FALSE
    tt_address => FALSE
    kommentare => FALSCH

Mögliche Werte für den Parameter --mode= sind:

  • auswählen (zählt nur Zeilen, verändert die Datenbank nicht)
  • anonymisieren (überschreibt Zeilen mit konfigurierten Werten, siehe pagets.ts)
  • löschen (tut, was es sagt, wirklich LÖSCHT die Zeilen von der Datenbank)

Erweiterung der Datenbankbereinigung

Um die Datenbankbereinigung zu erweitern, die im Backend oder über CLI/Scheduler durchgeführt werden kann, müssen Sie nur schreiben etwas Typoscript und fügen es in die pageTS Ihrer Website ein.

Sie können mehrere Tabellen hinzufügen, die nach Erweiterung gruppiert sind. Die Ausgangsebene ist module.tx_ujamiidsgvo_dsgvo_dsgvocheck.settings.db und die nächste Ebene ist der Erweiterungsname (z.B. Powermail) und dann der Tabellenname.

Die Option allDeleted kann 0 (Standard) oder 1 sein. Wenn auf 1 gesetzt, werden alle gelöschten=1 Datensätze in dieser Tabelle verwendet bei jedem Durchlauf des Prozesses. Der Name des Löschfeldes wird aus dem TCA gelesen.

Wenn Sie die Option andWhere setzen, werden die Zeilen in der Datenbank, die durch den Prozess abgedeckt werden, eingeschränkt. Wenn du also gehst dieses leere alle Aufzeichnungen in diesem Tisch werden gehandhabt werden Also denken Sie besser vorher darüber nach ;-)

Beispiel für eine Powermail-Erweiterung:

module.tx_ujamiidsgvo_dsgvocheck {
    einstellungen {
        db {
            powermail {
                tx_powermail_domain_model_mail {
                    allDeleted = 1
                    andWhere = crdate < UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 6 Monate))))
                    anonymisieren {
                        sender_name = anonymisiert
                        sender_mail = anonymisiert
                        //...
                    }
                }
            }
        }
    }
}

Um zu sehen, welche Tabellen standardmäßig abgedeckt sind, werfen Sie einen Blick in die pagets.ts. Sie können den Anonymisierungsteil komplett überspringen, wenn Sie nur Datensätze für eine bestimmte Tabelle wirklich löschen wollen.

Cookie-Einwilligung

Wenn Sie auf Ihrer Website Cookies verwenden, müssen Sie zumindest Ihre Benutzer benachrichtigen und eine Ablehnung von Cookies vorsehen die für die Website/den Dienst selbst nicht wesentlich sind und/oder eine Art private Informationen enthalten von der Benutzer. Leider werden auch dynamische IP-Adressen als privater Informationswert angesehen (zumindest in Deutschland).

Daher kann es für Sie ausreichen, eine gebrauchsfertige Lösung eines Drittanbieters zu verwenden. Diese Erweiterung stellt ein Beispiel dar basierend auf cookieconsent.insites.com. Um es in Ihrem TYPO3-Projekt zu verwenden, kopieren Sie einfach die Teilvorlage. zu Ihrem Projektteilpfad und fügen Sie ihn dann wie folgt in Ihre fluid-Vorlage ein:

<f:render partial="Frontend/CookieConsent" />

Wenn Sie das Beispiel direkt verwenden möchten, fügen Sie einfach den Teilordner zu Ihren fluid-Pfaden hinzu:

10 = FLUIDSCHABLONE
10 {
    datei = ......
    partielle Wurzelpfade {
        0 = ...
        1 = EXT:ujamii_dsgvo/Ressourcen/Privat/Private/Teilen/
    }
    layoutRootPaths.0 = .....
}

Um die Zielseite zu konfigurieren, setzen Sie einfach page.privacyInfo = xyz in Ihren Typoscript-Konstanten, wobei xyz die UID der Seite ist. Wenn Sie ändern möchten, wie diese Cookie-Einwilligung eingebunden wird, schauen Sie sich die setup.ts an

Deaktivieren von Cookies

Google Analytics

Um die Verfolgung von Cookies abzulehnen, müssen Sie einige Zeilen JavaScript-Code hinzufügen und stellen dem Benutzer einen Link oder eine Schaltfläche zur Verfügung, die die Opt-Out-Funktionalität auslöst. Im TYPO3-Backend könnte dies leicht geschehen durch erstellen eines neuen Inhaltselements auf der Datenschutzinformationsseite. Fügen Sie ein neues Element vom Typ "HTML" hinzu und fügen Sie so etwas wie den beispiel unten: (bei Verwendung von Bootstrap CSS)

<a  class="btn btn-danger">Ich möchte nicht verfolgt werden</a>
<a  class="btn btn-danger">Ich will not getrackt werden</a>

Sie können eine detailliertere Beschreibung hinzufügen wie z.B.:

Sie können das Tracking von Google Analytics deaktivieren. Um es zu deaktivieren, klicken Sie bitte auf die untenstehende Schaltfläche. In Ihrem Browser wird ein Cookie erstellt. Wenn diese Option aktiviert ist, protokolliert Google Analytics keine Daten mehr.

oder auf Deutsch:

Sie können das Web-Tracking von Google Analytics abschalten. Klicken Sie hier, um den stehenden Button zu öffnen. Es wird dann ein Cookie in Ihrem Browser gesetzt. Wenn der Cookie erstellt wurde, wird Google Analytics keine Daten mehr erheben.

Matomo (ehemals Piwik)

Matomo stellt ein fertiges Snippet direkt in der Tracking-Anwendung selbst zur Verfügung, also folgen Sie einfach dem Befehl anweisungen auf ihrer Website und du bist fertig

TODOs / Bekannte Probleme

Werfen Sie einen Blick auf die Problemliste auf GitHub.

Die Befehlssteuerung ist nach der Installation der Erweiterung im CLI/Scheduler nicht verfügbar

Wenn Sie TYPO3 NICHT im composer-Modus verwenden und die Erweiterung per Archivdownload installiert haben, müssen Sie möglicherweise das Autoloading deaktivieren cache von TYPO3 manuell, nach der Installation der Extension im Extension Manager. Dies geschieht durch Ausführen von

php typo3/cli_dispatch.phpsh extbase extension:dumpclassloadinginformation
# oder
rm -rf typo3temp/autoload/*

Icon-Credits

Symbol heruntergeladen von https://www.flaticon.com/free-icon/database-protection_1825

Icons von Freepik von www.flaticon.com sind lizenziert von CC 3.0 BY

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.

Verteilung:UJAMII_DSGVO ist auf

0.02 % aller TYPO3 installiert.

  • 0.11 % aller TYPO3 8.7.x Installationen installiert
  • 0.03 % aller TYPO3 7.6.x Installationen installiert

Aktualität:UJAMII_DSGVO ist auf dem neusten Stand (v.unknown) bei

100 % aller TYPO3 Installationen

  • 0 % aller TYPO3 9.5.x Installationen
  • 0 % aller TYPO3 9.3.x Installationen
  • 0 % aller TYPO3 9.2.x Installationen
  • 0.11 % aller TYPO3 8.7.x Installationen
  • 0.03 % aller TYPO3 7.6.x Installationen
  • 0 % aller TYPO3 7.5.x Installationen
  • 0 % aller TYPO3 7.4.x Installationen
  • 0 % aller TYPO3 7.3.x Installationen
  • 0 % aller TYPO3 7.2.x Installationen
  • 0 % aller TYPO3 7.1.x Installationen
  • 0 % aller TYPO3 7.0.x Installationen
  • 0 % aller TYPO3 6.2.x Installationen
  • 0 % aller TYPO3 6.1.x Installationen
  • 0 % aller TYPO3 6.0.x Installationen
  • 0 % aller TYPO3 5.0.x Installationen
  • 0 % aller TYPO3 4.7.x Installationen
  • 0 % aller TYPO3 4.6.x Installationen
  • 0 % aller TYPO3 4.5.x Installationen
  • 0 % aller TYPO3 4.4.x Installationen
  • 0 % aller TYPO3 4.3.x Installationen
  • 0 % aller TYPO3 4.2.x Installationen
  • 0 % aller TYPO3 4.1.x Installationen
  • 0 % aller TYPO3 4.0.x Installationen
  • 0 % aller TYPO3 3.5.x Installationen

PHP Version:UJAMII_DSGVO wird benutzt mit

  • 25 % PHP/7.2
  • 75 % PHP/7.0

Gosign-Responsive Index: TYPO3 Installationen nutzen UJAMII_DSGVO zu

  • 86 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
  • 14 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen UJAMII_DSGVO zu

  • 43 % wenn der Pagespeed zwischen 80 % und 100 % ist
  • 43 % wenn der Pagespeed zwischen 60 % und 80 % ist
  • 29 % wenn der Pagespeed zwischen 40 % und 60 % ist
  • 0 % wenn der Pagespeed zwischen 20 % und 40 % ist
  • 0 % wenn der Pagespeed zwischen 0 % und 20 % ist


Stichprobe n=36801 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>