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
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.
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:
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.
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: |