Die neuen Datenschutz-Funktionen von WordPress im Detail

Die neuen Datenschutz-Funktionen von WordPress im Detail

Vor knapp zwei Wochen wurden mit einem neuen WordPress-Release einige Funktionen eingeführt, die bei der Umsetzung der DSGVO unterstützen sollen. Im letzten Artikel habe ich bereits kurz darüber berichtet. Jetzt nehme ich die Neuigkeiten im Detail unter die Lupe.

Wie berichtet wurden mit #wpversion 4.9.6 neben zahlreichen anderen Verbesserungen auch neue Funktionen zur Umsetzung der europäischen Datenschutz-Grundverordnung eingeführt. Einen Überblick über die neuen Funktionen habe ich bereits auf Basis des Release Candidates gegeben. Mittlerweile ist die finale Version erschienen. Mit dieser habe ich die neuen Funktionen eingehender getestet und mir auch den Code angesehen, um herauszufinden, was da wirklich im Detail passiert.

Datenschutzrichtlinie

Diese Funktion findet sich im Menü unter EinstellungenDatenschutz. Leider werden hier meiner Ansicht nach zwei Funktionen miteinander vermischt, was weder übersichtlich noch benutzerfreundlich ist.

Einerseits kann eine Seite definiert werden, die die Datenschutzerklärung enthält. Wenn man hier eine Seite auswählt, dann wird automatisch ein Link zu dieser Seite auf der Anmeldeseite von WordPress angezeigt. Das ist eine clevere Lösung und gehört auch in das Menu Einstellungen.

Seite für die Datenschutzerklärung - die neuen Datenschutz-Funktionen von WordPress im Detail

Andererseits kann hier aber auch eine Datenschutzrichtlinie erzeugt werden. Diese beiden Funktionen zu vermischen halte ich für keine gute Idee. Das hat mit der vorher genannten Link-Anzeige auf der Anmeldeseite überhaupt nichts zu tun und gehört aus meiner Sicht auch gar nicht hierher sondern als eigener Punkt in das Menü Werkzeuge.

Außerdem ist wie bereits beim Test des Release Candidates geschildert, der Hinweis, dass es sich lediglich um eine Vorlage handelt, die anzupassen ist, auch in der finalen Version für meinen Geschmack viel zu unauffällig gestaltet.

Zusätzlich gibt es einen Leitfaden, der bei der Formulierung der Datenschutzerklärung behilflich sein soll. Völlig unverständlich, dass der Link zu diesem Leitfaden nur dann angezeigt wird, wenn man eine Seite ausgewählt hat, die die Datenschutzerklärung enthält und die man auf der Anmeldeseite verlinkt haben möchte. Man sollte sich diesen Leitfaden auch dann ansehen können, wenn man keinen Link zur Datenschutzerklärung auf der Anmeldeseite benötigt.

Ein Blick in den Code bestätigt meine Vermutung vom ersten Test, dass WordPress bei der Generierung dieses Mustertextes keinerlei Einstellungen berücksichtigt. Der Abschnitt über Kommentare wird beispielsweise auch dann eingefügt, wenn Kommentare generell deaktiviert sind und es wird auch dann auf die Verknüpfung zum Dienst Gravatar hingewiesen, wenn die Verwendung von Gravatar deaktiviert ist.

Es handelt sich also tatsächlich nur um ein Muster und nicht mehr. Die tatsächlichen Einstellungen werden ignoriert. Schade. Außerdem ist im Code ersichtlich, dass der Generator immer den selben Text liefert und es keine Möglichkeit für Plugins oder Themes gibt, eigene Abschnitte zu dieser Erklärung hinzuzufügen. Da eine solche Funktion angekündigt war, forsche ich weiter nach und stoße tatsächlich auf eine neue Funktion wp_add_privacy_policy_content(), die es Entwicklern erlaubt, einen eigenen Abschnitt hinzuzufügen.

Beim weiteren Forschen finde ich heraus, dass ein so hinzugefügter Abschnitt lediglich im Leitfaden angezeigt wird und nicht im erzeugten Muster für die Datenschutzerklärung. Welchen Ansatz die WordPress-Entwickler da verfolgen ist mir schleierhaft. Meiner Meinung nach wäre es doch sehr sinnvoll, diese Texte gleich in die Datenschutzerklärung mit aufzunehmen und nicht nur in den Leitfaden. Auf jeden Fall habe ich ein kleines Test-Plugin erstellt, das nichts anderes macht, als hier einen Abschnitt einzufügen. Das ist ganz einfach zu realisieren und funktioniert problemlos.

Außerdem ist für mich nicht nachvollziehbar, warum diese wichtigen Informationen so gut versteckt werden. Die müssten viel prominenter zugänglich sein.

Personenbezogene Daten exportieren

Dieses neue Werkzeug, das sich auch im entsprechenden Menü wiederfindet, erlaubt es einem Administrator, personenbezogene Daten zu exportieren und so der Verpflichtung, über gespeicherte personenbezogene Daten auf Anfrage Auskunft geben zu müssen, nachzukommen.

Den Ablauf finde ich, wie bereits auch im letzten Artikel erwähnt, recht clever gelöst. Man gibt eine Mailadresse ein und an diese wird ein Link zur Bestätigung gesendet. Gleichzeitig wird ein neuer Eintrag mit Status „Ausstehend“ in der Liste angelegt.

Personenbezogene Daten exportieren - die neuen Datenschutz-Funktionen von WordPress im Detail

Der Text der Mail ist Geschmackssache und lässt sich leider nicht anpassen. Gerade wenn es um ein so sensibles Thema geht wäre eine Anpassungsmöglichkeit unbedingt notwendig.

Personenbezogene Daten exportieren - die neuen Datenschutz-Funktionen von WordPress im Detail

Nach Bestätigung des Links bekommt man nur einen Hinweis angezeigt, dass die Export-Anfrage bestätigt wurde. Dabei wird folgender Hinweis angezeigt: „Der Website-Administrator wurde benachrichtigt. Du erhältst einen Link zum Herunterladen deines Exports per E-Mail, wenn er deine Anfrage beantwortet.“. Das ist meiner Meinung nach OK. Aber eben leider auch nicht anpassbar.

Im Admin-Bereich ändert sich der Status dadurch auf „Bestätigt“ und in der Spalte „Nächste Schritte“ wird ein Button angezeigt mit dem der Export gestartet und per Mail versendet werden kann. Der Administrator erhält eine Mail, dass eine Bestätigung eingegangen ist. Wünschenswert aus meiner Sicht wäre auch, wenn man das zusätzlich im Menü sehen würde – genauso wie man das zum Beispiel von der Anzahl neuer Kommentare oder der Anzahl der verfügbaren Updates her kennt. Das ist leider nicht der Fall.

Wenn der Administrator den Export und den Versand per Mail startet, wird eine ZIP-Datei erstellt und im Ordner uploads gespeichert – also dort, wo auch Bilder und sonstige Mediendateien gespeichert sind. Allerdings wird dort ein Unterordner wp-personal-data-exports angelegt. Der Name der ZIP-Datei enthält offensichtlich die Mailadresse, für die der Export durchgeführt wurde und eine anscheinend zufällig generierte Zeichenfolge. Die ist lange genug, sodass kein zufälliges Erraten möglich ist. Dennoch liegt die Datei unverschlüsselt am Webserver herum.

Der Antragsteller erhält wiederum eine Mail mit einem Link zum Herunterladen der Datei und dem Hinweis, dass die Datei nach drei Tagen gelöscht wird. Auch der Inhalt dieser Mail lässt sich nicht anpassen. Der Status ändert sich auf „Abgeschlossen“ und der Button in der Spalte „Nächste Schritte“ ändert sich auf „Anfrage entfernen“. Wie sinnvoll das ist, kann ich nicht beurteilen. Ohne die Regeln der DSGVO diesbezüglich genau zu kennen, nehme ich aber an, dass man solche Anfragen und deren Erfüllung irgendwie dokumentieren muss. Wenn dem so ist, dann wäre das eigentlich eine geeignete Stelle für so eine Dokumentation.

Die ZIP-Datei enthält eine HTML-Datei mit dem Export. Zu Testzwecken habe ich einen Kommentar erstellt und für diese Mailadresse den Export durchgeführt. Die Darstellung ist meiner Ansicht nach übersichtlich und sollte dem Antragsteller genügen.

Personenbezogene Daten exportieren - die neuen Datenschutz-Funktionen von WordPress im Detail

Ob der Export heruntergeladen wurde oder nicht ist für den Administrator nicht ersichtlich. Außerdem fehlt meiner Meinung nach die Möglichkeit, die erzeugte ZIP-Datei sofort nach dem Download vom Server zu löschen.

Der Export personenbezogener Daten hat zumindest meiner Meinung nach ein paar kleine Schwächen, funktioniert aber recht gut. Und das Ergebnis gefällt – zumindest mir. Inwieweit diese Funktion selbst DSGVO-konform ist, kann ich nicht beurteilen. Meiner laienhaften Einschätzung nach ist es aber sehr bedenklich, dass ein Export mit personenbezogenen Daten unverschlüsselt am Webserver liegt und ohne Zugangsdaten von jedem heruntergeladen werden kann, der die URL kennt.

Aber natürlich interessiert mich auch, was da genau passiert. Ein Blick in den Code offenbart, dass WordPress bei diesem Export neben den Kommentaren, bei denen die Mailadresse eingetragen ist, auch die Daten des Benutzers mit ausgibt, wenn ein Benutzer mit dieser Mailadresse gefunden wird. In dem Fall werden auch noch alle Mediendateien aufgelistet, die der Benutzer in die #mediathek hochgeladen hat.

Inhaltlich ist der Export also aus meiner Sicht sehr gut gelöst. Mehr personenbezogene Daten gibt es standardmäßig in WordPress nicht – zumindest fällt mir sonst nichts ein. Das Tool kann aber noch viel mehr. WordPress stellt nämlich einen Filter (wp_privacy_personal_data_exporters) bereit, über den sich Plugins beim Exporter registrieren und eine eigene Export-Funktion bereitstellen können. Damit können beim Export auch personenbezogene Daten, die von Plugins gespeichert wurden, berücksichtigen werden.

Das funktioniert natürlich nur dann, wenn in allen verwendeten Plugins, die personenbezogene Daten speichern, die entsprechende Funktion eingebaut wurde. Man darf sich also nicht unbedingt zur Gänze darauf verlassen, dass tatsächlich alle relevanten Daten im Export berücksichtigt werden.

Was mir deshalb abgeht, ist eine Auflistung der Daten, die gesammelt und exportiert werden. Diese Liste könnte dann durch die Plugins ergänzt werden, sobald sich ein Plugin beim Exporter registriert. Eine solche Liste wäre für den Administrator sicher hilfreich. Daraus wäre ersichtlich, ob die Daten aller Plugins berücksichtigt werden oder ob es Plugins gibt, die die Funktion noch nicht implementiert haben. So wüsste man als Admin zumindest gleich, wo noch Handlungsbedarf besteht.

Personenbezogene Daten löschen

Auch dieses neue Werkzeug befindet sich im Menü Werkzeuge. Optisch sieht es genau gleich aus wie das vorher beschriebene Tool zum Exportieren personenbezogener Daten. Auch die Funktionsweise ist identisch.

Auch die an den Antragsteller versendete Bestätigungsmail sieht genau gleich aus, lediglich anstatt „Personenbezogene Daten exportieren“ heißt es eben „Personenbezogene Daten löschen“.

Ebenso ist die weitere Vorgangsweise analog. Nach Bestätigung durch Anklicken des per Mail versandten Links ändert sich der Status des Antrags auf „Bestätigt“ und in der Spalte „Nächste Schritte“ wird ein Button „Personenbezogene Daten löschen“ angezeigt und der Administrator bekommt eine Info per Mail zugesandt.

Das Löschen geschieht sofort nach dem Drücken des Buttons ohne weitere Sicherheitsabfrage. Ist auch nicht nötig, da der Antragsteller ja bereits bestätigt hat, dass die Daten gelöscht werden sollen. Eine weitere „Sind Sie sicher?“ Frage ist somit völlig unnötig und wäre nervig. Der Antragsteller erhält eine Info per Mail, dass seine Daten gelöscht worden sind.

Personenbezogene Daten löschen - die neuen Datenschutz-Funktionen von WordPress im Detail

Auch der Antragsteller erhält also keinerlei Infos darüber, welche Daten über ihn gespeichert waren und gelöscht wurden. In meinem laienhaften Rechtsverständnis kann ich mir vorstellen, dass es rechtlich auch in Ordnung ist, keinen Überblick über die gelöschten Daten zu geben – schön ist es jedenfalls nicht.

Gespannt sehe ich mir an, was WordPress beim Löschen mit meinem Test-Kommentar gemacht hat. Es wäre ja keine gute Idee, den Kommentar tatsächlich zu löschen. Macht WordPress auch nicht. Der Kommentar wurde einfach anonymisiert, wie der folgende Screenshot zeigt.

Personenbezogene Daten löschen - die neuen Datenschutz-Funktionen von WordPress im Detail

Ob man die Adresse der Website mit einer ungültigen URL überschreiben muss oder ob es nicht besser wäre, das Feld einfach zu leeren, ist Geschmackssache. Seltsam finde ich aber, dass die drei Texte fix im Code stehen und nicht übersetzbar sind. Zwar gibt es einen Filter (wp_privacy_anonymize_data), um die Texte per #plugin überschreiben zu können, aber warum die nicht so wie alle anderen Texte in WordPress auch übersetzbar sind und mit der jeweiligen Sprachdatei mit ausgeliefert werden ist mir unverständlich.

Interessehalber versuche ich, nochmals einen neuen Lösch-Antrag mit der selben Mailadresse anzulegen. Das verweigert WordPress mit dem Hinweis „Für diese E-Mail-Adresse existiert bereits eine Anfrage“. So weit, so gut. Nachdem ich den Antrag aus der Liste gelöscht habe, kann ich einen neuen Antrag mit der selben Mailadresse anlegen. Im ersten Moment finde ich das nicht so gut, aber nach kurzem Nachdenken ist es klar, dass das Sinn macht. Jemand könnte ja nach einiger Zeit wieder einen Antrag auf Löschung stellen. Zwar unwahrscheinlich, aber theoretisch möglich.

Also spiele ich den Ablauf noch einmal durch und erhalte im Admin die Meldung „Für diesen Benutzer wurden keine personenbezogene Daten gefunden“. Dass WordPress darauf hinweist, überrascht mit positiv. Die Ernüchterung folgt aber unmittelbar darauf. Der Antragsteller erhält diese Information nämlich nicht. Es wird genau die selbe Mail versandt, mit dem Text, dass alle Daten gelöscht worden sind. Eigentlich sollte der Antragsteller ja doch auch wissen, dass gar keine personenbezogenen Daten über ihn vorhanden waren – meine ich zumindest.

Natürlich will ich wieder wissen, was genau passiert und sehe mir den Code an. Erstaunlicherweise gibt es da einen gravierenden Unterschied zum Export personenbezogener Daten. Beim Löschen werden nämlich tatsächlich ausschließlich die Kommentare anonymisiert. Benutzerdaten und Mediendateien werden nicht berücksichtigt.

Auf der einen Seite ist das logisch. Was soll WordPress machen, wenn es einen Benutzer mit der Mailadresse gibt? Diesen löschen? Was passiert mit den Beiträgen, die derjenige geschrieben hat? Und bei den Mediendateien? Sollten einfach alle Medien gelöscht werden, die der Benutzer hochgeladen hat? Was ist dann mit den Artikeln, in denen diese Medien verwendet werden?

Auf der anderen Seite aber ist das auch wieder irgendwie unlogisch. Wenn man die personenbezogenen Daten zu einer Mailadresse zuerst exportiert und danach löscht, dann werden eben nicht alle Daten gelöscht, die im Export angezeigt werden. Es bleiben Daten erhalten, die bei einem neuerlichen Export auch wieder sichtbar wären.

Diese Abweichung zwischen Export und Löschen ist zwar erklärbar – aber ist sich der normale WordPress-Anwender, der nicht den Programmcode analysiert, dessen bewusst? Wohl eher nicht. Irgendein Hinweis diesbezüglich? Fehlanzeige. Nicht sauber.

Genauso wie beim Export personenbezogener Daten können sich auch beim Löschen Plugins über einen Filter (wp_privacy_personal_data_erasers) registrieren und eigene Lösch-Funktionen bereitstellen, damit auch personenbezogene Daten, die von Plugins gespeichert wurden, mit gelöscht werden. Auch hier gilt das selbe wie beim Export. Es wäre sehr hilfreich, wenn eine Liste angezeigt würde, welche Plugins sich registriert haben, damit man als Administrator weiß, um welche Daten man sich noch kümmern muss, wenn man Plugins im Einsatz hat, die diese neue Funktion (noch) nicht unterstützen. So hat man leider überhaupt keinen Anhaltspunkt.

Fazit

Alles in allem hinterlassen diese drei neuen Funktion, die bei der Umsetzung der DSGVO unterstützen sollen, bei mir einen sehr zwiespältigen Eindruck. Die Ansätze sind gut, aber alle drei Tools haben auch ihre Schwächen. Das ist natürlich nur meine persönliche Meinung aufgrund meines Tests.

Ehrlicherweise gebe ich zu, dass ich mich weder beim Testen noch bei der Analyse des Programmcodes bis in den letzten Winkel durchgekämpft habe. Es mag also sein, dass ich auch Dinge übersehen habe. Außerdem bin ich weder Jurist noch ein Experte in Bezug auf die DSGVO, sodass ich die rechtlichen Aspekte nur laienhaft subjektiv beurteilen kann.

Alle drei Tools vermitteln mir das Gefühl, dass hier sehr schnell etwas zusammengebastelt wurde. Das Ergebnis erscheint mir teilweise unlogisch und teilweise nicht ganz zu Ende gedacht. Wahrscheinlich haben die Macher von WordPress – genauso wie die meisten anderen wohl auch – viel zu spät damit begonnen, sich dem Thema zu widmen. In dieses Bild passt auch, dass die Dokumentation der neu hinzugekommenen Filter bis heute – fast zwei Wochen nach Veröffentlichung – noch immer nicht auf wordpress.org verfügbar ist. Gerade weil Hersteller von Plugins, die personenbezogene Daten sammeln, diese Funktionen möglichst schnell in ihren Plugins integrieren sollten, ist die Verzögerung bei der Dokumentation unangenehm.

Grundsätzlich positiv ist, dass man das Thema Datenschutz bei WordPress ernst nimmt. Es ist sehr erfreulich, dass neue Werkzeuge direkt in WordPress integriert wurden, anstatt das Problem einfach vollständig an Plugin-Entwickler abzuwälzen. Das ist einerseits sehr sinnvoll und andererseits ein wichtiges Signal an alle Nutzer von WordPress, die in irgendeiner Form von der DSGVO betroffen sind. Ebenfalls erfreulich ist, dass die Umsetzung – auch wenn sie Schwächen hat – noch rechtzeitig erfolgt ist. Obwohl derzeit mit Hochdruck an der Version 5.0 gearbeitet wird, wurde noch ein Zwischen-Release eingeschoben. Auch das ist ein wichtiges Signal.

In Anbetracht der Kürze der Zeit ist auf jeden Fall gute Arbeit geleistet worden. Bleibt zu hoffen, dass die Macken in künftigen Releases behoben und die Tools weiter verbessert werden.  Aus meiner Sicht wäre es vor allem wichtig, dass man als Administrator genau weiß, welche Daten von den beiden Funktionen zum Exportieren und Löschen berücksichtigt werden. Nur so kann man wissen, worum man sich ggf. noch manuell kümmern muss. Und das ist zwingend erforderlich um die rechtlichen Anforderungen erfüllen zu können.

Du kannst mir gerne eine Nachricht zukommen lassen. Bitte habe etwas Geduld, die Beantwortung kann einige Zeit dauern.