Was jagt nicht das Thema Datenschutz und Webanalyse seit 2010 durch die Blogs und die Medien. Da gibt es Begriffe wie der Düsseldorfer Kreis und Landesdatenschutzbeauftragte, die beide auch Unwort des Jahres hätten werden können. Google Analytics wird zur schrecklichsten Plage im Internet erklärt und selbst die Namen einiger Datenschützer aus der ersten Reihe hat man plötzlich zumindest schon mal gehört. Aber es soll in diesem Beitrag nicht um das Für und Wider beim Thema Datenschutz und Webstatistik gehen, sondern darum, wie man die OpenSource-Software Piwik datenschutzkonform einsetzt.

Sicher hätte ich zuvor einen Beitrag zur Installation und zum Datenschutz selbst schreiben sollen, doch dafür gibt es noch keine amtliche Vorschrift und deshalb mache ich das hier etwas anders. Ich möchte an dieser Stelle darauf hinweisen, dass es sich bei diesem Beitrag nicht um eine vom Datenschutz zertifizierte Webanalyse handelt. Außerdem sind sich die Landesdatenschützer teilweise uneinig, ebenso deutsche Gerichte und die europäischen Gesetze sehen den Datenschutz noch einmal anders. Im Zweifelsfall mit einem Fachanwalt Kontakt aufnehmen!

Die folgende Punkte möchte ich in diesem Artikel beschreiben

Wie lässt sich eine IP-Anonymisierung einrichten?

Im Piwik-Administrationsbereich muss vom Administrator unter Einstellungen / Plugins die Erweiterung AnonymizeIP aktiviert werden. Das Plugin wird in der Standardinstallation bereits mitgeliefert. In der Konfigurationsdatei unter /config/global.ini.php lässt sich die Anzahl der zu anonymisierenden IP-Oktette festlegen. Ohne Anpassung dieses Wertes wird das letzte Oketett einer Besucher-IP-Adresse durch eine 0 ersetzt und somit gekürzt gespeichert. Da eine IPv4-Adresse aus 4 Oktetten (z.B. 192.168.100.55) besteht, gibt es 5 mögliche Werte für diesen Parameter. So ist die 0 (die IP wird gar nicht gekürzt), über 1 (es wird das letzte Oktett entfernt) bis 4 (die IP wird vollständig anonymisiert) konfigurierbar. Ich habe hier bei www.redirect301.de eine vollständige Ersetzung der IP eingestellt.

ip_address_mask_length = 4

Um sich bei Updates von Piwik nicht die Einstellungen jedes Mal zu überschreiben, empfehle ich die Einstellung in der /config/config.ini.php vorzunehmen. Hierfür einfach am Ende die folgenden beiden Zeilen einfügen:

[Tracker]
ip_address_pre_mask_length = 4

Somit ist es egal was in der global.ini.php steht. Die config.ini.php überschreibt die dortigen Werte.

Auch mit diesen Einstellungen werden die Herkunftsländer der Besucher erfasst und da ich keine weitere Verwendung für eine vollständige, gekürzte oder eben nicht vorhandene IP-Adresse in meiner Piwik-Datenbank habe, kann ich auf diesen Wert pauschal verzichten.

Wie lässt sich die IP-Anonymisierung überprüfen?

Ganz einfach: in der Datenbank! Hierzu in der Tabelle log_visit die Spalte location_ip ansehen (z.B. im phpMyAdmin). Dazu die neusten Eintragungen ausgeben lassen

SELECT idvisit, location_ip
FROM `log_visit`
ORDER BY `log_visit`.`idvisit` DESC
LIMIT 0 , 30 

und wenn die Werte in location_ip hier nur noch \0\0\0\0 anzeigen, dann werden die IPs vollständig anonymisiert.

Iframe für OptOut in die Webseite einbinden

Piwik stellt eine Widerspruchsmöglichkeit bereit, die in Form eines Iframes in die eigene Webseite oder in einen Blog eingebaut werden kann. Bei WordPress oder einem anderen System, das einen Editor zur Inhaltspflege bietet, kann der Iframe-Baustein per Kopieren und Einfügen übernommen werden. Das Einfügen des HTML-Codes muss im HTML-Modus/ HTML-Ansicht des Editors erfolgen. Ich denke jeder hat (oder sollte dies nun nachholen) einen Beitrag Datenschutz oder Privacy. Hier an der gewünschten Stelle den HTML-Code, der im Piwik-Administrationsbereich unter Einstellungen / Allgemeine Einstellungen hinterlegten ist, einbinden.

Die Werte für Höhe und Breite des Iframes lassen sich natürlich verändern. Voreingestellt ist eine Breite von 600 Pixel und eine Höhe von 200 Pixel. Um die Hinweistexte in deutscher Sprache ausgegeben zu bekommen, muss noch der Parameter &lang=de an die URL angehangen werden.

<iframe frameborder="no" width="600" height="200" src="http://analytics.weihmann.de/index.php?module=CoreAdminHome&action=optOut&lang=de"></iframe>

Ausführliche Informationen zum OptOut-Iframe von Piwik habe ich in einen separaten Artikel hier auf www.redirect301.de veröffentlicht.

Deutschsprachige Piwik OptOut-Erklärung

Wenn man Iframe eingebunden hat erscheinen die Hinweistexte weiter in englisch, obwohl der Parameter &lang=de an die URL angehangen wurde. Der Grund hierfür ist das derzeitige (Piwik 1.2) Fehlen einer Übersetzung. Diese lässt sich schnell und unproblematisch nachholen.

In der Piwik-Installation gibt es unter /lang die PHP-Datei de.php. Diese mit einem Text-Editor (zur Not reicht der Windows-Editor) öffnen und die folgenden Zeilen vor dem schließenden PHP-Array ); einfügen:

'CoreAdminHome_OptOutComplete' => 'Es wurde ein <a title="Link zum Wikipedia-Artikel" href="http://de.wikipedia.org/wiki/Web_Analytics#Cookies">Cookie</a> gesetzt, mit dem Ihre Besuche mit diesem Browser auf dieser Webseite nicht statistisch erfasst werden.',
'CoreAdminHome_OptOutCompleteBis' => 'Wenn Sie das Cookie (Opt-Out Cookie) löschen, den Computer wechseln, oder einen anderen Browser benutzen, müssen Sie dieses Cookie erneut setzen, um der Speicherung Ihrer Besuche und Aktionen auf dieser Webseite zu widersprechen.',
'CoreAdminHome_YouMayOptOut' => 'Ihre Besuche und Aktionen auf dieser Webseite werden statistisch erfasst, anonym gespeichert und dienen der inhaltlichen Bedarfsermittlung.',
'CoreAdminHome_YouMayOptOutBis' => 'Wenn Sie der Speicherung und Zählung Ihrer Besuche widersprechen möchten, entfernen Sie bitte das untere Häkchen. Dabei wird ein <a title="Link zum Wikipedia-Artikel" href="http://de.wikipedia.org/wiki/Web_Analytics#Cookies">Cookie</a> auf Ihrem PC gespeichert. Mit dieser Textdatei geben Sie unserer Software zu erkennen, keine weiteren Besuche und Aktionen von Ihnen mehr zu zählen und zu speichern.',
'CoreAdminHome_YouAreOptedIn' => 'Besuche und Aktionen auf unserer Webseite werden anonym gespeichert',
'CoreAdminHome_YouAreOptedOut' => 'Besuche und Aktionen auf unserer Webseite werden nicht gespeichert',

Den Text kann man sich an seine Gegebenheiten anpassen, erweitern, kürzen oder komplett umschreiben. Ich habe diesen so weitgehend aus dem Piwik-Forum übernommen und mit Links zur Wikipedia erweitert. Sicherlich werde ich diesen auch noch einmal überarbeiten und dann natürlich hier sowie in meiner eigenen Datenschutzerklärung veröffentlichen.

Verringerung der Cookie-Lebensdauer

Piwik speichert einen Cookie, der zur Erkennung wiederkehrender Besucher genutzt wird. Standardmäßig ist die Lebensdauer dieses Cookies auf 2 Jahre eingestellt, was natürlich vom ULD (Unabhängiges Landeszentrum für Datenschutz Schleswig-Holstein) als viel zu lang eingestuft wurde. Das ULD empfiehlt in ihrer Veröffentlichung Hinweise und Empfehlungen zur Analyse von Internet-Angeboten mit Piwik die Lebensdauer für einen Tracking-Cookie von einer Woche nicht zu überschreiten. Klingt für mich nach einem gewürfelten Wert und ich habe mich für eine Lebensdauer von 0 Sekunden entschieden; in einem Beispiel der ULD wurden 7200 (also 2 Stunden) verwendet. Piwik wird trotzdem anhand heuristischer Methoden versuchen einen wiederkehrenden Besucher zu erkennen.
Diese Einstellung wird unter /config/config.ini.php vorgenommen. Eine Zeitangabe erfolgt in Sekunden. Die Einstellungen aus der global.ini.php, in diesem Fall, cookie_expire = 63072000, werden dabei überschrieben.

[Tracker]
cookie_expire = 0

Update vom 20.09.2011: Seit der Piwik-Version 1.2 werden anstatt 3rd Party Cookies 1st Party Cookies eingesetzt. Dadurch ändert sich einiges beim Setzen der Cookies bzw. deren Gültigkeit. Wie man die Cookies bei Piwik in den Griff bekommt, steht im Artikel Piwik und die Lebensdauer der Cookies hier auf redirect301.de.

Anpassungen am Piwik-Template für das OptOut-Iframe

Das optOut.tpl – die Template-Datei für das OptOut-Iframe – liegt unter /plugins/CoreAdminHome/templates. Da die Inhalte nicht weiter formatiert sind, habe ich diese per CSS-Datei meinem Layout angepasst. Weiterhin habe ich das Indexieren dieses Frames für Suchmaschinen unterbunden.

<html>
  <head>
    <meta name="robots" content="noindex, nofollow">
    <link href="http://url-und-pfad-zur-css-datei.css" rel="stylesheet" type="text/css">
  </head>
  <body>
  ...
</html>

Zwei Zeilen für die robots.txt

Um den Suchmaschinen-Crawlern zu signalisieren, dass es hier keine indexierbaren Inhalte gibt, ist noch die robots.txt anzupassen. Auch eine zusätzliche Passwortabfrage mit htpasswd oder dem sichereren htdigest ist schnell erledigt und sorgt für zusätzlichen Schutz vor ungebetenen “Gästen”.

User-agent: *
Disallow: /

Weiterführende Links