Cookies FAQ

Only available in German.
Erstellt von Rolf Haas (Bis zur Version 1.2 der FAQ von Rolf Haas & Holger Ziegelbauer).
Diese FAQ darf ausschließlich für den privaten Zweck genutzt werden!
Version 1.3 vom 21. Mai 2000
 

1. Was sind Cookies?
2. Wer hat welches Interesse Cookies zu nutzen?
3. Wie werden Cookies erzeugt und übertragen?
4. Lassen sich Cookies sicher übertragen?
5. Wie sicher sind Cookies überhaupt?
6. Wie lange leben Cookies?
7. Wie lautet die Syntax von Set-Cookie und Cookie?
8. Wie sieht beispielsweise ein CGI-Skript oder ein JavaScipt für Cookies aus?
9. Welche Voraussetzungen brauchen Cookies serverseitig?
10. Seit wann gibt es Cookies?
11. Warum gab es keine öffentliche Ankündigung von Netscape zu den Cookies?
12. Gibt es eine Möglichkeit sich vor Cookies zu schützen?
13. Wo und unter welchem Namen liegen die Cookie-Dateien?
14. Welche Vorschläge liegen für die weitere Spezifikation von Cookies bereits vor?
15. Wie sieht die Zukunft der Cookies aus?
16. Welche Browser unterstützen die HTTP-Cookies?
17. Wo liegt die Problematik der Cookies?

I. Einige Referenzen zum Thema Cookies
II. Beispiele um lokal einen Cookie zu erhalten


1. Was sind Cookies?

Cookies sind serverseitige Mechanismen (i.d.R. durch CGI-Skripts initiiert), die beim WWW-Client Informationen hinterlegen und für den Web-Server wieder abfragbar sind. Für bestimmte Internet-Anwendungen (Suchmaschinen, E-Business etc ...) können die persönlichen Präferenzen beim Client lokal hinterlegt werden, so daß der Benutzer beim nächsten Aufruf der entsprechenden Domain (URL) diese nicht noch einmal neu einstellen muß.
Das eigentliche Cookie besteht aus der betreffenden Information in der Cookie-Datei, die ähnlich einem Paß, bei jedem erneuten Betreten eines Territoriums abgestempelt wird. Ein Cookie kann derzeit nur von einem Server erzeugt und abgefragt werden (und nicht von einem Client).
 

2. Wer hat welches Interesse Cookies zu nutzen?

Der Einsatz und die Anwendungsgebiete von Cookies sind verschiedenartig nutzbar. Während der Client (Konsument) damit nur seine persönlichen Präferenzen, eine automatische Identifikation auf bestimmte Dienste oder ähnliches dem Server bekannt machen möchte, könnte ein Anbieter im Web beispielsweise Registrierungsinformationen über eine Dienstleistung oder über ein Produkt ablegen. Der Anbieter einer Leistung im Netz (z.B. ein virtuelles Kaufhaus) könnte desweiteren damit auch das Konsumentenverhalten herausfinden und damit eine einzelne Person bzw. Personengruppen exakter analysieren als es bei einer Auswertung der URLs (durch Zugriffstatistiken) möglich wäre. Zu diesem Zweck würde ein Cookie Informationen zu jedem Benutzer auf dem entsprechenden Server in einer Datenbank ablegen und somit besser auswertbar machen.
Ein anderes Beispiel ist die Ablage von Informationen wie Kennwörter, User-ID's oder Seriennummern in den Cookie-Files der Browser. Auch hier gilt: Das primäre Interesse liegt im kommerziellen Bereich.
 

3. Wie werden Cookies erzeugt und übertragen?

Um einen Cookie zu erzeugen, sendet ein Web-Server als Antwort auf einen URL-Zugriff (von einem Browser) die HTTP-Zeile "Set-Cookie...". Wann immer nun ein Cookie-fähiger Browser einen HTTP-Zugriff an eine URL (laut Definition von Domain und Path von Set-Cookie) zu einem Server sendet, der bereits ein Cookie zum Client übertragen hat, wird das eigentliche Cookie vom Client übertragen. Die Cookie-Information auf dem Client bleibt dabei erhalten.
 

4. Lassen sich Cookies sicher übertragen?

Cookies lassen sich im Netz dann über einen sicheren Kanal übermitteln, wenn der Server über HTTPS (HTTP auf SSL) verfügt. Dazu gibt es in der Syntax von Set-Cookie die Option secure. Wird secure nicht angegeben, so wird das Cookie klar, d.h. unverschlüsselt über einen ungeschützten Kanal auf den Client bzw. auf den Server übertragen.
 

5. Wie sicher sind Cookies überhaupt?

Sind die Cookie-Dateien, wie beispielsweise unter DOS/Windows-Systemen/MAC/UNIX, völlig ungeschützt auf der Festplatte, so kann sich praktisch jeder Zugang zu ihnen verschaffen und diese auch kopieren. Spezielle User-IDs oder Paßwörter liegen ungeschützt in den Cookie-Dateien und sind somit praktisch voll zugänglich. Die in der Cookie-Datei hinterlegten Informationen sind generell unverschlüsselt und lassen sich auch nicht kryptographisch schützen.
Faustregel: Sollten Cookies bewußt angewandt und durch Abspeicherung der Selbigen wiederholbar automatisiert genutzt werden, so sollten diese Einträge keine vertrauenswürdige Informationen einer Person selbst beinhalten.
 

6. Wie lange leben Cookies?

Cookies kann man ein Verfalldatum (durch expires) zuweisen. Nach diesem Datum ist dieses Cookie ungültig. Wenn keine Angaben zur Gültigkeitsdauer gemacht werden (bei Set-Cookie) endet diese mit dem Verlassen der entsprechenden URL.
Prinzipiell gilt: Cookie-Informationen werden üblicherweise im Speicher gehalten. Erst beim Beenden des Browsers (Netscape oder Microsoft) wird das Cookie-File beschrieben. Editierungen von Hand in diesen Cookie-Files sollten demnach also nur bei beendetem Browser geschehen. Anderfalls werden die im Cache befindlichen Informationen wieder zurück geschrieben.
 

7. Wie lautet die Syntax von Set-Cookie und Cookie?

Die genaue Syntax ist aus http://home.netscape.com/newsref/std/cookie_spec.html zu entnehmen.
 

8. Wie sieht beispielsweise ein CGI-Skript oder ein JavaScipt für Cookies aus?

Zunächst ein Beispiel wie ein Cookie erzeugt wird:

#!/bin/sh
echo "Content-type: text/html"
echo "Set-cookie: Keksdose=Kekse; expires=Wendsday 31-Dec-98 24:00:00 GMT"
echo ""
echo "<H1> Ich liebe Kekse </H1>"
echo ...

Hier ein kleines Beispiel wie man Cookies lesen kann:

#!/bin/sh
echo "Content-type: text/html"
echo "Ich will einen Keks:<P>"
echo $HTTP_COOKIE"<P>"
echo ...

Hier ein Beispiel wie man Cookies in JavaScript nutzen kann:

function getCookieVal (offset)
 {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
   endstr = document.cookie.length;
   return unescape(document.cookie.substring(offset, endstr));
 }

 function GetCookie (name)
 {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen)
  {
   var j = i + alen;
   if (document.cookie.substring(i, j) == arg)
    return getCookieVal (j);
   i = document.cookie.indexOf(" ", i) + 1;
   if (i == 0)
    break;
  }
  return null;
 }

 function SetCookie (name, value)
 {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=Sunday, 8-Apr-2001 23:59:59 GMT")) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
 }

 function set_name()
 {
  value = GetCookie(name_cookie);
  var expdate = "Friday, 31-Dec-1999 24:00:00 GMT";
  if(value == null)
  {
   random_link(0);
   SetCookie (name_cookie, n, expdate);
  }
  document.write("Hey there "+GetCookie(name_cookie))
 }
 function random_link(x)
 {
  n=window.prompt("Hi! You are the first time with your current browser on my webpage. Please enter your Name here. This value will only be used in your own cookie-file and used also for your own statistic on this sides. If not, leave the value empty:","Name");
 }

 function doCookie()
 {
  if(document.cookie)
   {
   index = document.cookie.indexOf(cookie_name);
  }
  else
  {
   index = -1;
  }
  if (index == -1)
  {
   document.cookie=cookie_name+"=1; expires=Sunday, 8-Apr-2001 23:59:59 GMT";
  }
  else
  {
   countbegin = (document.cookie.indexOf("=", index) + 1);
   countend = document.cookie.indexOf(";", index);
   if (countend == -1)
   {
    countend = document.cookie.length;
   }
   count = eval(document.cookie.substring(countbegin, countend)) + 1;
   document.cookie=cookie_name+"="+count+"; expires=Sunday, 8-Apr-2001 23:59:59 GMT";
  }
 }

 function gettimes()
 {
  if(document.cookie)
  {
   index = document.cookie.indexOf(cookie_name);
   if (index != -1)
   {
    countbegin = (document.cookie.indexOf("=", index) + 1);
    countend = document.cookie.indexOf(";", index);
    if (countend == -1)
    {
     countend = document.cookie.length;
    }
    count = document.cookie.substring(countbegin, countend);
    if (count == 1)
    {
     return ("the "+count+" time since "+update_date+".<br>");
    }
    else
    {
     return (count+" times since "+update_date+".<br>");
    }
   }
  }
  return ("0 time(s) since "+update_date+".<br>");
 }
 

9. Welche Voraussetzungen brauchen Cookies serverseitig?

Serverseitig wird der Netscape-HTTP-Server benötigt. Für den Apache-HTTP-Server ist ein Modul Names mod_cookies.c verfügbar, das Cookies nach dem Netscape-Standard unterstützt. Weitere Informationen hierzu kann man unter http://www.apache.org/docs/mod_cookies.html entnehmen. Für die (fehlerfreie) Client-Seite wird ebenfalls der Netscape-Navigator ab Version 2.0 oder der Internet Exporer (MSIE) ab Version 3.0 benötigt oder ein anderer Cookie-fähiger Browser.
Mittlerweile gibt es für alle anderen gängigen HTTP-Server (z.B. von Microsoft, Netscape u.a.) standardmäßig eine entsprechende Cookie-Unterstützung.
 

10. Seit wann gibt es Cookies?

Cookies sind seit der Version 1.1 des Netscape Navigators verfügbar - allerdings verhinderte ein Bug den breiten Einsatz. Der Netscape 1.1N kann mit Cookies dann nicht umgehen, wenn in Set-Cookie bei der Path-Angabe kein "/" am Schluß steht. Fehlerfrei sind Cookie-Mechanismen für die Client-Seite seit der Version 2.0 des Netscape Navigators verfügbar. Netscape behält sich allerdings vor, dieses Feature wieder einzustellen (siehe auch Frage 15).
Microsoft und andere Browser-Hersteller übernahmen später die Netscape-Spezifikation für Cookies auch in ihre Browser.
 

11. Warum gab es keine öffentliche Ankündigung von Netscape zu den Cookies?

Netscape hat keine Informationen an die Client-Anwender gegeben, daß auf dem lokalen Bereich Informationen hinterlegt werden (eben in der Cookie-Datei). Es gibt nur eine spärliche Information in der "cookies.txt"- bzw. "cookies"-Datei. In der dieser Datei wird nur auf die Cookiesspezifikation von Netscape verwiesen (http://home.netscape.com/newsref/std/cookie_spec.html). Desweiteren gibt es noch zwei weitere technische Informationen zu Cookies auf den Web-Servern von Netscape. Diese sind unter http://www.netscape.com/assist/support/server/tn/cross-platform/20019.html und unter http://www.netscape.com/assist/support/client/tn/cross-platform/10026.html nachlesbar. Netscape wollte wohl die Akzeptanz der Cookies bei den Anwender durch die Vorteile dieses Features stillschweigend erreichen (und versucht es immer noch). Fakt ist, daß die wenigsten Benutzer des Netscape-Navigators über die Existenz von Cookies auf Ihrem lokalen Bereich, wissen. Anderseits spricht Jim Clark (Mitbegründer von Netscape) davon, daß es das fortschrittlichste aber das noch am wenigsten genutzte Web-Feature schlechthin ist.
 

12. Gibt es eine Möglichkeit sich vor Cookies zu schützen?

Auf Systemen, die keinen Dateischutz unterstützen ist praktisch auf File-Ebene kein Schutz möglich. Wird bei Unix-Systemen die Schreibberechtigung für die Cookie-Datei "cookies" (liegt im Verzeichnis .netscape) entzogen, so ist kein weiterer Schreibvorgang auf die Datei möglich. Zusätzlich kann man noch die Leseberechtigung für diese Datei aufheben. Allerdings bleibt aber festzustellen, daß die Leseberechtigung in jedem Fall nach Beendigung des Netscape-Navigator der Cookie-Datei "cookies" wieder erteilt wird! Da auf Unix-Systemen die Cookie-Datei standardmäßig nicht vorhanden ist, sollte um ein Schutz herbeizuführen, diese Datei (reine ASCII-Datei) erzeugt werden und unter den oben angegeben Maßnahmen geschützt werden. Ein Lesen aus einer leeren Datei ist somit als weniger gefährlich einzustufen.
Eine weiterere Möglichkeit sich vor Cookies zu schützen, liegt in der Erzeugung eines Links der Datei "cookies" auf das NULL-Device (/dev/null). Die entsprechenden Cookie-Informationen werden nicht abgespeichert sondern sofort vernichtet.
Bei den MS-Windows Versionen ist diese Datei vorhanden unter dem Namen "cookies.txt".
Ein praktischer Schutz ist beim Netscape Navigator bis vor der Version 3.0 nur dann möglich, wenn hier ebenfalls der Dateischutz geändert wird und die Datei "cookies.txt" auf read-only gesetzt wird.

In der "netscape.ini" (für Windows 3.11) kann man zusätzlich folgende Zeile noch ändern.

Von [Cookies] Cookie File=[pfad]cookies.txt nach [Cookies] Cookie File=NUL

Für Windows95 oder Windows98 mit Registriereditor:

Von [HKEY_USERS\.Default\Software\Netscape\Netscape Navigator\Cookies] "Cookie File"= "[pfad]Cookies.txt"
nach [HKEY_USERS\.Default\Software\Netscape\Netscape Navigator\ Cookies] "Cookie File"= "NUL"

Obschon diese beiden Möglichkeiten im Internet als Abhilfe beschrieben werden, brachte diese Änderung zumindest für die 16-Bit-Netscape-Versionen 2.00 und 2.01 keine Wirkung! Der Schreibschutz für das File "cookies.txt" reichte aus.
Seit der Version 3.0 des Netscape-Navigators und seit der Version 3.0 des Microsoft Internet-Naviagtors ist nun ein Feature integriert, wonach sich neben der Java- und der JavaScript- auch die Cookie-Eigenschaft abschalten bzw. einschränken läßt. Dies kann unter Netscape über dem Menü-Punkt "Options/Network Preferences/Protocols" bzw. "Edit/Preferences/Advanced" und unter Microsoft über den Menü-Punkt "View/Internet Options/Advanced" vorgenommern werden. Ab der Version 5.0 des MSIE finden sich die Einstellungen unter "Tools/Internet Options/Security"
Mittlerweise sind auch einige brauchbare Tools verfügbar, die vor Erhalt von Cookie-Informationen warnen. Ein komfortabeles Tool ist für den Netscape Navigator und den Microsoft Internet Explorer unter http://www.wizvax.net/kevinmca/ als Demo-Version erhältlich.
 

13. Wo und unter welchem Namen liegen die Cookie-Dateien?

Die Cookie-Dateien sind auf folgenden Systemen unter folgenden Namen und Verzeichnissen zu finden:

14. Welche Vorschläge liegen für die weitere Spezifikation von Cookies bereits vor?

Vorschläge, die für die zukünftigen Version von HTTP-Cookies gemacht worden sind (aber bis dato vpn keinem Hersteller umgesetzt wurden):


15. Wie sieht die Zukunft der Cookies aus?

Es hängt von der Akzeptanz der Anwender ab, ob Cookies zum de-facto-Standard für die persönliche Identifikation im Netz werden können. Außerdem bleibt abzuwarten, ob etwa durch entsprechende nationale Gesetze, der Gebrauch von Cookies unterbunden werden kann (datenschutzrechtliche Gründe, Verletzung der Privatsphäre).
Neueste Informationen seitens Netscape ließen jedoch verlauten, daß die mittlerweile doch umstrittenen Cookies bald der Vergangenheit angehören sollen. Abgelöst werden sollen Cookies durch den sogenannten "Open Profiling Standard". Derzeit liegt der Entwurf dieses Standards dem Standardisierungsgremium Word Wide Web Consortium vor. Etwa 40 Firmen möchten diesen Standard für die Ermittlung des Benutzerverhaltens unterstützen.
Leider hat bis heute (Mai 2000) kein Browser-Hersteller den "Nachfolger" der Cookies, dem OPS, eine Chance gegeben.
 

16. Welche Browser unterstützen die HTTP-Cookies?

HTTP-Cookies werden derzeit neben dem Netscape Navigator unter anderem auch vom Microsoft Internet Explorer (Mozilla/1.22), vom Netcom Netcruiser und vom Quarterdeck Mosaic 2.0 unterstützt.
 

17. Wo liegt die Problematik der Cookies?

Es findet ein schreibender und lesender Zugriff auf den lokalen Bereich statt, was vom Benutzer unter Umständen gar nicht gewollt ist. Derzeit werden unter Netscape max. 300 Cookies pro Benutzerprofile akzepiert - für Microsoft gilt standardmäßig 2% Diskspace im "Temporary Internet Files"-Directory (im System-Folder). Derzeitige Firewallsysteme können einen Schutz diesbezüglich nicht herbeiführen. Die Cookies arbeiten auch durch die Proxies, sofern nicht z.B. an den Firewall-Systemen (Application-Level-Gateway mit Proxy) diese Einschränkungen gemacht worden sind.

Ein weiterer Punkt stellt möglicherweise die Aushebung der Privatsphäre einer Person dar. Es ist prinzipiell denkbar, daß man in Zukunft Opfer einer strafrechtlichen Verfolgung wird, wenn man versehentlich einem zwielichtigen Link folgt, wobei als Nachweis die Eintragungen in der Cookie-Datei dienen könnten. Generell ist das Cookie selbst nicht das Problem, das "Problem" stellt eher das Tracking der Informationen in Relation mit anderen Seiten dar. Beispiel: Eine Seriennummer wird in einer Cookie-Datei festgehalten. Durch Referenzbezug kann man die natürliche Person datentechnisch ermitteln (es existieren Listen und Dienstleister im Internet). Ein bekannter (Aus)Nutzer von Cookie-Informationen ist Doubleclick. Man wundert sich dann über Post von Anbietern die man zwar im Netz besucht hat, aber bei denen man keine persönlichen Informationen in irgendeiner Form hinterlassen hat.
 


I. Einige Referenzen zum Thema Cookies


II. Beispiele um lokal einen Cookie zu erhalten


Diese FAQ ist ebenfalls als Word 6/7-Dokument und als Postscript-Datei verfügbar (derzeit nur Version 1.2 dieser FAQ).
Anregungen, Fragen, Hinweise und Kommentare zur FAQ können an uns gemailt werden. Ich arbeite derzeit an einer neueren Version dieser FAQ!
 
Visitors since May 29th 1999: