DNT: Do Not Track

29.05.2013, 10:27 von Daniel || 0 Kommentare || Mit anderen teilen

Durch die Ad Blocker-Kampagne der großen deutschen Verlagshäuser ist der Datenschutz für den Besucher wieder stärker in den Fokus der Aufmerksamkeit gerückt. Seitenbetreiber, die das Thema ernst nehmen, können mit Hilfe der Do Not Track-Funktion bereits einiges unternehmen.

Die Macher von AdBlock Plus freuten sich über einen Downloadzuwachs ihrer Browsererweiterung von knapp 130%, nachdem die Verlage ihre Kampagne gegen Ad Blocker starteten. Der Aufruf von Spiegel Online & Co. ging also voll nach hinten los.

Wenn man sich ein differenziertes Bild von der Situation macht, kann man beide Seiten verstehen. Auf der einen Seite die Verlage, die mit Werbeeinnahmen einen größtmöglichen Teil ihrer Ausgaben decken wollen. Und auf der anderen Seite die Nutzer, die teilweise gnadenlos mit Werbung torpediert und darüber hinaus noch ausspioniert werden, um ihr Verhalten zu analysieren. Doch was tun?

An dieser Stelle könnte "Do Not Track" (kurz DNT) weiter helfen. Auf beiden Seiten.

Was ist Do Not Track?

Do Not Track ist ein HTTP Header-Feld, welches vom Browser übermittelt wird. Es ist - wie der Name schon sagt - dafür vorgesehen, der besuchten Seite mitzuteilen, dass keine Informationen über den Besucher erfasst werden. Der Webserver kann diese Information auf verschiedenste Weise auswerten und nutzen.

So gibt es beispielweise die Möglichkeit, den Apache oder IIS daraufhin zu konfigurieren. Genau so ist es aber auch möglich, eine serverseitige Scriptsprache die Abfrage nach Do Not Track vornehmen zu lassen.

Wie kann ich DNT Serverseitig nutzen?

Auf der Projektseite donottrack.us gibt es Beispieleinbindungen für die verschiedensten Scriptsprachen. Als Beispiel soll in diesem Artikel PHP dienen.

Das MDN hat dazu jedoch eine schlankere und bessere Funktion ins Netz gestellt:

function getDntStatus() {
  return (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1);
}

Bei aktiviertem DNT-Header liefert sie 1 zurück, bei nicht gesetztem oder deaktiviertem Header kommt nichts.

Clientseitiger Code im Eigenbau mit Hilfe von PHP

Der MDN-Artikel geht sogar noch einen Schritt weiter. Er liefert eine Kombination aus PHP- und JavaScript-Code. Die Funktion lässt sich per JavaScript nutzen, indem sie in eine Datei gepackt wird und als JavaScript ausgeliefert wird. Das sieht dann so aus:

<?php
  function getDntStatus() {
    return (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1);
  }

  header("content-type: application/x-javascript");

  if (getDntStatus()) {
    echo "window.isDntOn = true;";
  } else {
    echo "window.isDntOn = false;";
  }
?>

Anschließend lässt sich der Header wie folgt abfragen:

<script src="pfad/zur/oben/beschriebenen/dnt.php"></script>
<script>
  if (window.isDntOn === true) {
    // Do Not Track ist aktiviert
  } else {
    // Do Not Track ist nicht gesetzt oder deaktiviert
  }
<script>

Eine native JS-Eigenschaft

Es geht aber auch einfacher als die oben beschriebene Möglichkeit mittels PHP und JavaScript in Code-Union. Browser, die Do Not Track unterstützen (später dazu mehr), stellen eine Eigenschaft vom navigator-Objekt zur Verfügung:

navigator.doNotTrack

Mit einigen Besonderheiten muss man bei der Benutzung allerdings rechnen. So ist die Eigenschaft im Internet Explorer zwar implementiert, aber nur mittels Präfix zu benutzen.

// IE Vendor Prefix
navigator.msDoNotTrack

Eine weitere Besonderheit ist die Ausgabe. Während alle Browser eine 1 zurück liefern, wenn DNT aktiviert ist, so schert der Firefox hier aus der Reihe und liefert ein "yes" zurück. Das MDN klärt über die Hintergründe dieses Verhaltens auf.

Browsersupport

In der folgenden Tabelle ist die Unterstützung für den DNT-HTTP Header zu sehen:

Chrome Firefox Internet Explorer Opera Safari
ja ja, seit 4.0 ja, seit 9 ja, seit 12 ab 5.1,
nur OSX 10.7

Und hier die Unterstützung für navigator.doNotTrack:

Chrome Firefox Internet Explorer Opera Safari
ja ja, seit 4.0 ja, seit 9,
nur mit Präfix
ja, seit 12 k. A.

Was kann man nun damit anstellen?

Um einen Bogen zum Anfang des Artikels zu bauen, würde ich sagen: Einfach nutzen! Mittels der Do Not Track-Funktion ist es nicht mehr nötig, zu spekulieren, ob der Nutzer mit der Auswertung seines Surfverhaltens einverstanden ist oder nicht. Er teilt es ja bereits mit.

So kann man beispielsweise die Einbindung bestimmter Skripte, Statistiken oder Ad-Server steuern. Besucher, die DNT aktiviert haben, können von der Statistik komplett ausgeschlossen werden. Oder zumindest anonymisiert erfasst werden. Genauso verhält es sich mit Ad-Servern, die im Verdacht stehen, ein besonders perfides und hartnäckiges User Tracking durchzuführen.

Inwieweit man dem User damit entgegen kommt, ist letztendlich Auslegungssache und dem eigenen Gewissen, aber auch Geldbeutel, geschuldet.

Schlüsselwörter zu diesem Beitrag

« zurück

Hier schreibe ich,

Ich

Daniel Erlinger, als selbstständiger Webdesigner über die Themen Webdesign, Contao, Shopsysteme, Kreatives, Neues und alles, was sonst noch dazu passt.

Vernetzt

Twitter
Mister Wong
Contao Community

Kommentare



Nutze Deinen Gravatar.


Bitte rechnen Sie 1 plus 7.