HomeKontaktImpressum
Sie sind hier: Home

Cookies auf Domain-Ebene nutzen

In den meisten Fällen sind Cookies auf einer Domain und allen darunter gelegenen Subdomains gültig. Der Nachteil dieser Vorgehensweise ist der, dass bei jeder Anfrage die Informationen aus den Cookies an die Domain bzw. den zuständigen Webserver geschickt werden müssen. Auch wenn diese Vorgehensweise ein genaueres User-Tracking zulässt, sollte man – gerade wenn das gespeicherte Datenmaterial umfangreich ist – auf domainweite Cookies verzichten.

Domain Cookies zeichnen sich dadurch aus, dass sie nicht nur auf der Domäne selbst, sondern auch auf allen Subdomains gültig sind. Festgelegt wird ein domainbasiertes Cookie, indem bei dessen Definition der zugehörige Domainbereich angegeben wird. So legt beispielsweise die Angabe von .cookie-domain.de fest, dass ein Cookie auf allen Subdomains und der eigentlichen Hauptdomain gültig sein soll. Werden bei der Definition keine Parameter zur Domainzugehörigkeit angegeben, so beschränkt sich die Gültigkeit nur auf die Subdomain, auf der das Cookie gesetzt wurde.

Im folgenden Abschnitt wird per PHP ein Cookie gesetzt mit dem Namen Counter, dem der Wert 1 zugewiesen wird. Mit dem Ausdruck time () + (60*60*24*30) wird die Gültigkeitsdauer auf 30 Tage festgelegt. Die Funktion time () liefert dabei einen Timestamp, der die aktuelle Systemzeit auf dem Webserver in Sekunden darstellt. Durch die Addition wird der Ablaufzeitpunkt festgelegt, indem einfach die Anzahl der in 30 Tagen anfallenden Sekunden addiert werden. Wird dieser Ausdruck weggelassen, so ist das Domain Cookie nur in der aktuellen Browsersitzung gültig und wird automatisch gelöscht, wenn der Nutzer die Browseranwendung schließt.

<?php
  setcookie ("Counter", 1, time () + (60*60*24*30), '/', '.cookie-domain.de');
?>

Mit dem 4. Parameter – hier durch '/' belegt – wird festgelegt, dass der Domain Cookie ab dem Root-Verzeichnis des Webservers gültig ist – also praktisch überall auf der Website. Eine Einschränkung auf bestimmte Verzeichnisse und deren Unterverzeichnisse ist per Änderung der Angabe zum Cookie Path möglich. Im letzten hier angegebenen Parameter wird Gültigkeitsbereich des Cookies auf Domain-Basis festgelegt. Der Punkt vor dem Domainnamen ist deshalb nötig, damit alle unter dieser Domäne gelegenen Subdomains einbezogen werden. Ohne den Punkt würde beispielsweise für URLs auf www.cookie-domain.de keine Gültigkeit bestehen.

Bei der Integration in ein bestehendes PHP-Script ist darauf zu achten, dass Domain Cookies stets vor der ersten Ausgabe des Scripts definiert sein müssen. Das liegt daran, dass die Informationen in den Response-Header integriert werden und nicht direkt in die Ausgabe des Scripts geschrieben werden. Erfolgt eine Ausgabe – etwa durch echo oder printf – so bedeutet das für den PHP-Interpreter, dass die Header-Informationen komplett sind und an den Client verschickt werden können. Wird nach einer erfolgten Ausgabe nochmals mit setcookie ein Cookies gesetzt, so wird dies mit einer Fehlermeldung quittiert und er wird letzlich auch nicht an den Client verschickt.

Auf Top-Level-Domains (TLD) – hiermit sind die Länderkennungen .de, .at aber auch .net, .com usw. gemeint und nicht, wie oft fälschlicher Weise geschrieben, die hierunter registrierte Domä (etwa cookie-domain) – können Domain Cookies übrigens nicht gesetzt werden. Das wäre auch fatal: Schließlich wären sie auf allen darunter gelegenen Domains gültig. Würde bedeuten, dass beispielsweise ein auf .de gesetztes Domain Cookie zur Beobachtung der gesamten hierunter registrierten Domains genutzt werden könnte. Jeder Besuch eines Internetnutzers auf einer Seite mit der TLD .de könnte dann ausspioniert, jeder Klick registriert werden. Mittels Cross Domain Cookies ließen sich leicht mehrere TLDs miteinander verbinden und die Website-Besucher könnten lückenlos verfolgt werden.




  
© 2009-2017 Möglichkeiten zur Steigerung von Geschwindigkeit und Usability Ihrer eigenen Website