DSGVO – Keine Cookies, Keine Fremdaufrufe

Zur Datenschutz-Grundverordnung

Die Datenschutz-Grundverordnung gilt in allen EU-Mitgliedstaaten ab dem 25. Mai 2018. Sie regelt insbesondere den Umgang mit personenbezogenen Daten, und hat somit erhebliche Auswirkung auf innerbetriebliche Abläufe und deren Kommunikation nach außen, sowie die rechtlich einwandfreie Formulierung von Datenschutzerklärungen.

Weitere Informationsquellen:

Zweck dieses Beitrags, Haftungsausschluss

Hier schreibe ich als Webtechniker, wie man als Seitenbetreiber die notwendigen Ausführungen zum Thema Datenschutz erheblich verringern kann, und somit die Anwaltskosten für eine DSGVO-konforme Datenschutzerklärung stark senken kann: Denn wer keine Cookies im Browser der Besucher setzt, und von seinen eigenen Webseiten keine im Hintergrund ablaufenden Aufrufe von Webadressen Dritter absetzt, hat diesbezüglich ja keine Erklärungsnot (außer dass dies nicht stattfindet). Besonders angenehm dabei: (a) Die Notwendigkeit für den störenden Banner "Diese Website verwendet Cookies..." entfällt; und (b) die Webseiten laden schneller, ein Pluspunkt für Besucher sowie für das Ranking durch Suchmaschinen.

An dieser Stelle eine persönliche Anmerkung: Das Thema DSGVO schlägt hohe Wellen; was mich dabei wundert ist, dass fast überall die Aussage fällt, dass Seitenbetreiber ihre Datenschutzerklärungen (teuer) anpassen müssen. Ich finde es viel sinnvoller die Gelegenheit zu ergreifen um darüber nachzudenken, was wir wirklich brauchen und wie wir mit möglichst wenig (Cookies, Fremdaufrufe, gespeicherten Daten) auskommen können. Gerade in Zeiten von Big Data, Nudging, gezielte Werbung und sogar Manipulation von Wahlverhalten halte ich das für unser aller Verantwortung für die bewusste Gesellschaftsgestaltung – und da bin ich nicht allein.

Aufgrund der Komplexität dieses Rechts muss ein Softwarespezialist wie ich seinen Kunden an einen auf Internetrecht spezialisierten Rechtsanwalt verweisen. Ich stelle hier klar, dass ich für die Richtigkeit und Vollständigkeit von Datenschutzerklärungen keine Haftung übernehmen kann, auch nicht für die Ausführungen in diesem Beitrag.

Protokollierung: Datenverkehr und personenbezogenen Daten

Auch wenn eine Website weder Cookies noch Fremdaufrufe verwendet, bleibt mehr zu berücksichtigen:

  1. Wenn persönliche Daten vom Besucher eingegeben werden, z.B. in einem Kontaktformular, so muss der Umgang mit den erhaltenen personenbezogenen Daten erläutert werden. Um dies zu umgehen kann man auf ein Kontaktformular zugunsten von Kontaktdaten verzichten – eine (gut gegen Spambots verschlüsselte) E-Mail-Adresse in der Form eines "mailto" Links führt bei den meisten Browsern zu einem Aufruf des E-Mail-Cients mit vorausgefülltem Empfänger und Betreff.
  2. Wenn nicht-personenbezogenen Daten über Seitenabrufe gesammelt werden, z.B. zur statistischen Auswertung, so muss Art und Umfang der gespeicherten Daten, ihre Auswertung und Löschung adressiert werden. Da in aller Regel die den Webseiten ausliefernden Webserver jeden Abruf in Protokolldateien festhalten, wird an diesem Thema keinen Weg vorbeiführen.

Besuchsanalyse: Google Analytics vs. Matomo (ehemals Piwik)

Während Google Analytics mehrere Cookies sowie Fremdabrufe zu mehreren unterschiedlichen Webadressen verwendet, gibt es für Betreiber eigener Server die Möglichkeit, Matomo zu verwenden. Entsprechend konfiguriert kommt Matomo ohne Cookies und ohne Fremdaufrufe aus. Dabei kann sich Matomo von seinen Möglichkeiten her durchaus mit Google Analytics messen. Hier die Features von Matomo (in den Gratis und Bezahlversionen).

Achtung: Matomo muss explizit konfiguriert werden um keine Cookies zu verwenden (erfolgt clientseitig). Ferner werden die Seitenabrufe generell über einen URL-Aufruf erfasst – dies gilt aber nicht als Fremdaufruf, wenn Matomo in einem Unterverzeichnis oder Subdomain der aufrufenden Hauptdomain eingerichtet wird. Dies wiederum bedeutet, dass jede Hauptdomain ein eigenes Matomo braucht, wenn man auf Fremdaufrufe verzichten will. Als Alternative zum URL-Aufruf bietet Matomo die Möglichkeit, seine Daten durch Import der Webserver-Logdateien zu erfassen.

Ich weise vorsorglich darauf hin, dass obwohl diese Daten nicht personenbezogenen sind, die Datenschutzerklärung über deren Speicherung, Auswertung und mögliche Weitergabe aufklären soll.

WordPress

Es geht: WordPress ganz ohne Cookies und ohne Fremdaufrufe – solange es keine eigenen Benutzerkonten für Besucher gibt (keine Registrierung, kein Login, auch keine über WordPress mit Passwortschutz versehenen Seiten). Ferner nehme ich an, dass keine sonstigen Plugins im Einsatz sind, die selbst Cookies oder Fremdaufrufe verwenden, dies muss im Einzelfall immer geprüft werden.

Besuchsstatistiken in WordPress

Plugin: Slimstat analytics

Das Plugin Slimstat analytics sammelt Daten direkt in der WordPress-Datenbank, bei jedem Seitenaufruf. Insofern ähneln die Daten denen, die ohnehin meist vom Webserver auch festgehalten werden. Die werden aber so eingeteilt, dass Slimstat daraus mit geschickten Datenbankabfragen viele nützlichen Aufstellungen erzeugen kann; diese werden direkt im WordPress-Dashboard angezeigt – dort stehen über 20 Auswertungen zur Auswahl. Folgendes Screenshot stammt von einer privaten Website im Aufbau (daher wenig Daten):

Slimstat analytics Beispiel

Slimstat analytics Beispiel

Wenn Slimstat eingestellt wird (a) auf Cookies zu verzichten, und (b) die IP-Adressen der Seitenabrufe maskiert zu speichern, entstehen keine personenbezogen Daten. Daher wäre ein „Opt-Out“ oder „Opt-In“ Verfahren für das Tracking ohne Bedeutung, da keine Daten entstehen, die einer natürlichen Person zugeordnet werden könnten. Wir „tracken“ lediglich die Besuche, nicht die Besucher.

Vielen Dank an den Autor Jason Crouse!

Plugin: WP-Matomo (WP-Piwik):

Wer einen eigenen Server betreibt, kann Matomo auf einer Subdomain installieren und mittels des Plugins WP-Piwik von WordPress aus anbinden. Diese Lösung bietet sich an, wenn man (auch) Websites betreibt, die nicht auf WordPress basieren (sonst kann man auf Matomo verzichten und einfach Slimstat nehmen). Die notwendigen Einstellungen in WP-Matomo, um Cookies und Fremdaufrufe zu unterbinden, sind:

  • Mit Piwik verbinden | Piwik-Modus = Selbst-gehostet (PHP-API)
    Dies bezieht sich nur darauf, wie WP-Piwik seine anzuzeigenden Daten erhält, nicht wie die Seitenabrufe protokolliert werden.
  • Tracking aktivieren | Cookies deaktivieren

In Matomo ist eine beeindruckende Vielzahl von Auswertungen erreichbar, hier ein Screenshot mit den wichtigsten:

Matomo Beispiel

Matomo Beispiel

Vielen Dank an das ganze Matomo-Team!

Weitere WordPress-Themen

Fremdaufrufe für Schriftartdateien und Grafiken

Die meisten Themes laden standardmäßig Schriftarten von Google Fonts, bzw. bieten dies an. Ferner laden manche Plugins auch (Google) Fonts oder andere Resourcen von fremden Websites. Beispiel: WP-Edit lädt in seinem Panel im Backend-Dashboard eine Grafik von feedblitz.com. Doch das wird nur im Backend angezeigt; letztenendes muss man bei jeder Website extra den Datenverkehr mittels der Entwicklertools eines Browsers (Reiter: Netzwerk) auf einigen Frontend-Seiten überprüfen und die Fremdaufrufe einen nach dem anderen "tilgen".

Bezüglich Schriftarten: Es ist generell möglich, selber Open-Font Dateien aus dem Internet herunterzuladen, auf die eigene Website per FTP hochzuladen, und diese dann per Custom-CSS einzubinden. Die Frage bleibt, ob das Theme dann die Abschaltung von fremden Fonts, die es standardmäßig einbindet, ermöglicht.

Im Folgenden erläutere ich ein paar Beispiele:

  • Theme: Weaver Xtreme Pro
    Navigiere zu Design | Weaver Xtreme Admin | Fonts & Custom | Fonts und wähle die Option "Disable Google Font Integration". Achtung: Diese Option steht in der Gratis-Version nicht zur Verfügung. Dann kann man überall in den Theme-Einstellungen, wo Font-Family wählbar ist, "Inherit" wählen. Ansonsten bietet Weaver eine Auswahlliste gängiger Schriftarten, die an den meisten Endgeräten zur Verfügung stehen.
  • Theme: Weaver Xtreme Gratisversion
    Selbst wenn man überall in den Theme-Einstellungen "Arial (sans serif)" explizit als Font-Family wählt, bleiben im Frontend zwei Aufrufe zu Google Fonts. Wer das nicht will, muss die Pro-Version lizenzieren.
  • Theme: Customizr
    Ich verwende auf einer Website die Gratis-Version. Hier kann man sehr elegant entweder Google-Fonts oder Websichere Fonts wählen (websicher heißt, auf den allermeisten Endgeräten ohne Herunterladen verfügbar). Bei einer Auswahl unter "Websichere Schriftpaare" erzeugt das Theme automatisch keine Aufrufe zu Google Fonts: WordPress Customizer | Allgemein Einstellungen | Google Schriftart | {Dropdown öffnen}.
  • Theme: Jupiter
    Auch bei diesem Premium-Theme kann man sehr elegant entweder Google-Fonts oder Typekit oder Websichere Fonts wählen (oder eine Mischung). Jupiter | Theme Options | Typography | Default | Select a Font Family | {Dropdown rechts öffnen, Gattung "Safe Fonts" wählen, Dropdown links öffnen, wählen}. Will man z.B. bei Überschriften eine andere Font-Familie, so muss man auf "+" klicken und diese andere Font zunächst auswählen - erst dann kann man aus einer Dropdown wählen, für welche HTML-Elemente sie gelten soll.

CAPTCHA-Plugins ohne Cookies / Fremdaufrufe

Von Google reCaptcha rate ich dringend ab: (a) Es setzt drei Cookies, _gat + _gid + _ga, letzteres für drei Jahre (!) gültig; und (b) es setzt vier Fremdaufrufe ab, einen zu googletagmanager.com und drei zu google-analytics.com. Was Google dadurch über uns im Laufe der Zeit lernt, darf man sich ja kaum ausmalen. Und der Nachfolger, Google noCaptcha, ist noch extremer, ich habe einmal über 40 (!) Cookies davon gezählt.

Bis vor kurzem gab es einige gute WordPress-Plugins in diesem Bereich; leider wurde in der zweiten Jahreshälfte von 2017 die zwei populärsten von einer Firma aufgekauft und mit sog. Hintertüren zwecks Website-Kaperung versehen. Dies geschah sicherlich zum Entsetzen der ursprunglichen Autoren; die Plugins wurden nach der Entdeckung der Hintertüren sofort von WordPress aus dem Verkehr gezogen. Ich bekam Wind davon und machte mich auf der Suche nach einem guten Ersatz. Ich habe mich für Securimage-WP entschieden – und dem Autor geholfen, das Plugin zu verbessern. Ich kann es ab der Version 3.6.14 ohne Einschränkung wärmstens empfehlen.

Securimage-WP ist gratis und Open Source, es verwendet weder Cookies noch Fremdaufrufe. Wer es auf einem eigenen Server betreibt, kann das Paket LAME MP3 Encoder im Betriebssystem installieren und in den Einstellungen von Securimage-WP aktivieren: Dann bietet das Plugin zusätzlich eine Audio-Ausgabe des Captchas an und wird somit barrierefrei. Das CAPTCHA kann wahlweise Zeichen zum Abtippen sein, oder eine Mathe-Aufgabe (ebenfalls aus einer verzerrten Grafik zu lesen). Securimage-WP kann neben den üblichen WordPress-Formularen (Registrieren, Einloggen, Kommentieren, verlorenes Passwort) auch Contact Form 7, Buddypress und Formidable Forms schützen. Ein Shortcode erlaubt es, das CAPTCHA auf beliebigen Seiten zu integrieren.

Ein herzliches, riesiges Dankeschön an den Autor Drew Phillips!

Nachtrag 7.5.2018: Die Praxis hat leider gezeigt, dass einige kluge, lernfähige Bots es schaffen, das Captcha von Securimage zu lösen. Daher muss ich meine Empfehlung relativieren; wer ein gebunkerte Kopie des Plugins Captcha (Version 4.4.5, die von einer Hintertür bereinigte Version) kann dies durch manuelles Hochladen benutzen, in meiner Erfahrung hat das noch kein Bot gelöst.

Kommentar-Cookies von WordPress verhindern

Wenn in WordPress das Kommentieren von Seiten oder Beiträgen erlaubt ist, und ein Besucher tatsächlich ein Kommentar einreicht, so setzt WordPress selbst drei Cookies in seinem Browser (für Name, E-Mail und ggf. Website; alle für 1 Jahr gültig). Glücklicherweise kann dies durch das Plugin Cookieless Comments verhindert werden - einfach das Plugin installieren, fertig. Vielen Dank an Samuel Aguilera!

Update 21.5.2018: Die kürzlich freigegeben WordPress Version 4.9.6 ändert das Standardverhalten: Das Kommentarformular wurde um ein Checkbox erweitert "Meinen Namen, E-Mail und Website in diesem Browser speichern, bis ich wieder kommentiere" - der standardmäßig nicht gewählt ist. M.a.W. es werden nur dann Cookies gesetzt, wenn der Benutzer hier ein Häkchen setzt (dies muss entsprechend in der Datenschutzerklärung notiert werden).

Per WordPress mit Passwort geschützten Seiten verursachen Cookies

WordPress bietet für Seiten und Beiträge Schutz per Passwort an. Dabei gilt das gleiche Passwort für alle Besucher (also kein Einloggen, man muss nur das Passwort kennen). Das Verfahren setzt bei erfolgreicher Passworteingabe zwei Cookies:

  • wordpress_test_cookie – Wird vom Browser am Ende der Sitzung gelöscht
  • wp-postpass_{hashkey} – Gültig für drei Tage

Die Nutzung von Cookies an dieser Stelle ist nicht abschaltbar. Es gibt eine vergleichbare Alternative ohne Cookies: HTTP-Authentifizierung. Das Verfahren benötigt manuelle Eingriffe in der Konfiguration des Webservers und muss daher von einem Webtechniker eingerichtet werden.

PHP-Sitzungen (sessions) mit Cookie PHPSESSID

Die Programmiersprache PHP, in der WordPress geschrieben ist, bietet einen Standard-Mechanismus, um mehrere Seitenaufrufe vom selben Browser aus als zusammenhängenden Besuch erkennen zu können (z.B. für Online-Shops). Dazu wird ein Cookie namens PHPSESSID verwendet; die meisten Nutzungsszenarien innerhalb von WordPress legen den Cookie schon beim ersten Seitenaufruf an. WordPress selbst nutzt diesen Mechanismus nicht; (nur) wenn ein Benutzer tatsächlich einloggt, setzt WordPress dafür eigene Cookies. Es gibt jedoch manche Themes und Plugins, die PHP-Sessions verwenden und damit den Cookie verursachen:

  • Theme: Jupiter – nur für das eigene Kontaktformular.
  • Theme: Stockholm – nicht weiter untersucht (functions.php Zeile 17).
  • Plugin: MultilingualPress – für HTTP-Weiterleitung – Leite Besucher anhand ihrer Browsereinstellung direkt zur passenden Übersetzung um (einfach abwählen und darauf verzichten um das Cookie zu vermeiden).
  • Plugin: Captcha – aber nur wenn das Login-Formular geschützt wird. Bei Websites ohne Registrierung verwende ich iThemes Security und darin auch das Feature "Backend verstecken", so dass ein Schützen des Login-Formulars überflüssig ist. In dieser Weise kann man dieses Plugin verwenden.
  • Plugin: WD Manager – Das Plugin hilft bei der Verwaltung von Plugins der Firma Web Dorado – ist nützlich, aber lässlich.

Schließlich kurz zu Sozialen Netzwerken: Direkt unter diesem Absatz sehen Sie einige Buttons, die dem Teilen dieses Beitrags auf sozialen Netzwerken und per E-Mail dienen. Seit der Erstellung dieser Website haben meine Bedenken bzgl. der Nutzung sozialer Netzwerke erheblich zugenommen, nach Möglichkeit setze ich keine solchen Buttons mehr ein. Da ich die Buttons hier auf sehr achtsamer Weise eingebaut habe, lasse ich sie hier aktiv – als Beispiel wie man es sorgfältig machen kann, mehr dazu auf meiner Seite Soziale Netzwerke.

Kommentare (8) Schreibe einen Kommentar

  1. Danke Tim für diesen klaren und übersichtlichen Artikel, mit dem ich auch als „Nicht-IT-ler“ viel anfangen kann!

    Antworten

  2. Lieber Tim, danke für diesen Artikel. Sehr übersichtlich.
    Eine Unklarheit habe ich noch im Bezug auf Matomo.

    Ich finde nirgends im Netz die Info und die Möglichkeit das Tracking nicht über die URL sonder über php API zu nutzen.

    Hast du hier kurz eine Anweisung für mich?

    Vielen lieben Dank und viele Grüße
    Felix

    Antworten

    • Tim Reeves

      Lieber Felix, in meinem Artikel steckte zu diesem Thema eine falsche Annahme. Die war mir länger bewusst, aber ich kam erst jetzt dazu, sie zu korrigieren. Bitte lese die nun korrigierten Ausführungen zu Matomo. Interessant könnte sein, dass Matomo seine Daten statt über URL-Aufruf durch Import der Webserver-Logdateien gewinnen kann.
      Danke für den Hinweis und lieben Gruß,
      Tim

      Antworten

  3. Hallo,

    vielen Dank erst mal für den Artikel.

    Eine kurze Frage zum Einsatz von Matomo ohne Cookies: Ist eine Opt-Out-Möglichkeit nicht trotzdem in der Datenschutzerklärung anzugeben? Ich baue das gerade auf meinen Seiten so ein und pack die trotz deaktivierter Cookies mit rein.

    Ich habe eine Matomo-Multisite-Installation (ich weiß nicht ob man das wirklich so nennt) aufgesetzt, wo alle entsprechenden Subdomains (https://piwik.domain1.de, https://piwik.domain2.de, etc…) auf die gleiche Matomo-Installation auf meinem Webspace verweisen. Ich denke mal das sollte aber ok sein, oder wie würdest du das sehen? Schließlich läuft es ja in dem Fall nicht über Fremd-Domains.

    mfg
    tolan

    Antworten

    • Tim Reeves

      Hallo Tolan,

      heute noch werde ich einen weiteren Beitrag zur DSGVO online stellen, sowie eine überarbeitete Datenschutzerklärung. Zu deiner Frage: Ich *denke* (bin ja kein RA) dass es darauf ankommt, ob personenbezogenen Daten überhaupt anfallen. Wenn dies im Rahmen des Trackings *nicht* der Fall ist, so gibt es logischerweise nichts, wozu eine bestimmte natürlich Person einwilligen oder widersprechen könnte. Ich habe gestern das Tracking meiner Website von Matomo auf das WP-Plugin Slimstats umgestellt – und so konfiguriert, dass keine personenbezogenen Daten anfallen:
      – Einstellungen | Basic | Retain data for: 90 days
      – Einstellungen | Basic | Archive records: Aus
      – Einstellungen | Tracker | Privacy and Data Protection | Enable Privacy Mode: An
      – Einstellungen | Tracker | Privacy and Data Protection | DNT Header: Aus
      – Einstellungen | Tracker | Privacy and Data Protection | Set Cookie: Aus
      – Einstellungen | Tracker | Advanced Options | CDN aktivieren: Aus

      Das „Do not track“ HTTP-Header beachte ich nicht, weil der Besucher gar nicht „getrackt“ wird – lediglich die besuchten Seiten. Damit verzichte ich bewusst darauf, mehrere Seitenabrufe eines Besuchers als zusammenhängend zu erkennen.

      Was Matomo-Multisite betrifft, da meine ich auch dass es OK ist – solange es sich um Subdomains der selben Hauptdomain handelt, das gilt dann nicht als URL eines Dritten.

      Antworten

  4. Hallo, danke für den informativen Artikel!
    Lässt sich das Securimage-WP-Plugin mit Contact Form 7 vereinbaren?
    Auf meiner Website nutze ich CF7 für das Kontaktformular und sichere es aktuell mit ReCaptcha ab. Die teilweise recht umfangreichen Formulare würde ich hier nur ungern aufgeben, bzw. auf etwas anderes umsteigen, da ich zusätzlich noch einige Erweiterungen zu CF7 im Laufe der Jahre dazugekauft hatte.

    Antworten

    • Tim Reeves

      Hi Mike,
      Scurimage-WP macht auch CF7, wird aber zunehmend von Bots gelöst. Daher habe ich Dir soeben „Captcha“ als Zip-Datei geschickt. Es ist zwar aufgebläht mit einem Rahmen vom früheren Hersteller, aber es funktioniert. Auch bei CF7. Vorsicht Cache-Plugins: Client-side Caching geht hiermit nicht.
      Hope this helps!
      Tim

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Untenstehende Gleichung bitte lösen * Zeit abgelaufen. Bitte das CAPTCHA nochmal laden.