Liest JavaScript Cookies anderer Domains?

Ich habe ein eigenes Perl-CGI auf Hypermart untergebracht. Es produziert eine HTML-Seite, die per JavaScript Cookies setzt.

Diese Cookies sollen von einer anderen Domain (meiner) per JavaScript-Seite wieder eingelesen werden.

Darum gebe ich diese Domain als Parameter beim Setzen des Cookies bei Hypermart mit.

Aber: Das klappt nicht, das Cookie wird dann überhaupt nicht gesetzt. Ich verstehe und verstehe es nicht!

Weiß jemand Rat? Dank wäre groß!

Frank

Hi,

Darum gebe ich diese Domain als Parameter
beim Setzen des Cookies bei Hypermart
mit.

Aber: Das klappt nicht, das Cookie wird
dann überhaupt nicht gesetzt. Ich
verstehe und verstehe es nicht!

das ist eine Frage der Sicherheit: Cookies können nur von der (Sub-)Domain aus gelesen werden, die sie gesetzt hat. Die Angabe der Domain kann man meines Wissens nur tätigen, um z.B. den Cookie „domain.de“-lesbar zu machen, wenn „xyz.domain.de“ ihn setzt.

Mehr dazu findest Du unter http://www.raven.to.

Cheatah
http://cheatah.net

Danke Cheatah!

das ist eine Frage der Sicherheit:
Cookies können nur von der (Sub-)Domain
aus gelesen werden, die sie gesetzt hat.
Die Angabe der Domain kann man meines
Wissens nur tätigen, um z.B. den Cookie
domain.de“-lesbar zu machen, wenn
xyz.domain.de“ ihn setzt.

Bei der Cookiecentral fand ich den Hinweis, daß mit dem Domain-Parameter das Cookie für eine andere Domain lesbar gemacht werden solle. Und zwar *nur* für diese angegebene. Damit wäre doch Sicherheit erreicht?

Mehr dazu findest Du unter
http://www.raven.to.

Sehr interessante Seite! Die sind auch Deiner Meinung!

Mein Problem liegt jedoch nicht so sehr im *Auslesen* eines Fremd-Cookies, als vielmehr im *Setzen*. Schon das funktioniert nicht, wenn man die Domain als Parameter verwendet.

Das Cookie wird erst gar nicht erzeugt. Ich kann alle Parameter problemlos verwenden, nur nicht den Domain-Parameter, damit weigern sich IE4 und Opera 3.6, ein Cookie zu setzen.

Ich benutze die Funktionen von Bill Dortch, die Du vermutlich kennst.

Mache ich was falsch???

Frank

Hi,

Bei der Cookiecentral fand ich den
Hinweis, daß mit dem Domain-Parameter das
Cookie für eine andere Domain lesbar
gemacht werden solle. Und zwar *nur* für
diese angegebene. Damit wäre doch
Sicherheit erreicht?

hm, es wäre mir neu, daß das geht, aber gänzlich verneinen möchte ich es nicht. Meine Überzeugung ist, daß das nicht möglich ist - aber teste es doch einfach aus, ich lasse mich da gerne eines besseren belehren :smile:

Mein Problem liegt jedoch nicht so sehr
im *Auslesen* eines Fremd-Cookies, als
vielmehr im *Setzen*. Schon das
funktioniert nicht, wenn man die Domain
als Parameter verwendet.

Das Cookie wird erst gar nicht erzeugt.

Hm. Nun ja, Du darfst nicht vergessen, daß erst der Browser einen Cookie setzt - und wenn der jetzt die Aufforderung von der Domain a.de bekommt, einen Cookie für b.de zu setzen, sagt er sich vielleicht „mach ich nich“ und läßt es :smile: Alternativ könnte es auch sein, daß für die Domain b.de bereits das Maximum an Cookies erreicht wurde.

Es kann auch daran liegen, daß Du den Cookie falsch ausliest. Das Script muß auf dem Server b.de liegen (im angegebenen Pfad etc.), und darf erst angefordert werden, _nachdem_ der Cookie erfolgreich gesetzt wurde. Oder wie prüfst Du?

Ich benutze die Funktionen von Bill
Dortch, die Du vermutlich kennst.

Sagt mir spontan nichts. Hat der an CGI.pm mitgearbeitet?

Cheatah
http://cheatah.net

Hi Cheatah,

danke für Deine Gedanken, die Du dir machst! Ich sehe, ich habe ein Problem gefunden, bei dem sogar die Experten auf Vermutungen angewiesen sind. Macht mich etwas stolz. Seltsame Angelegenheit jedoch.

gänzlich verneinen möchte ich es nicht.
Meine Überzeugung ist, daß das nicht
möglich ist - aber teste es doch einfach
aus, ich lasse mich da gerne eines
besseren belehren :smile:

Ausgetestet hab ich es - es geht nicht. Das Lesen *fremder* Cookies *soll* ja auch nicht möglich sein. Darum will ich ja mein Cookie ausdrücklich *einer* anderen Domain (sozusagen ersatzweise) zum Zugriff zuteilen.

Schon das funktioniert nicht,
wenn man die Domain als Parameter ::verwendet.

Das Cookie wird erst gar nicht erzeugt.

Hm. Nun ja, Du darfst nicht vergessen,
daß erst der Browser einen Cookie setzt -
und wenn der jetzt die Aufforderung von
der Domain a.de bekommt, einen Cookie für
b.de zu setzen, sagt er sich vielleicht
„mach ich nich“ und läßt es :smile:

Den Verdacht habe ich auch, der Browser will es nicht. Wofür dann aber der domain-Parameter? Ist doch dann sinnlos, oder?

Alternativ könnte es auch sein, daß für
die Domain b.de bereits das Maximum an
Cookies erreicht wurde.

Die ältesten werden dann gelöscht, zugunsten der neuen, die gesetzt werden. Mein Cookie-Speicher enthält außerdem nur 1-5 Cookies.

Es kann auch daran liegen, daß Du den
Cookie falsch ausliest. Das Script muß
auf dem Server b.de liegen (im
angegebenen Pfad etc.), und darf erst
angefordert werden, _nachdem_ der Cookie
erfolgreich gesetzt wurde. Oder wie
prüfst Du?

Ich prüfe auf zwei Wegen: Zum einen mit einem ASCII-Editor, zum anderen mit der Browser-Option „Fragen, wenn Cookie kommt“, der Browser zeigt den Inhalt der einzelnen Cookies.

Das Cookie-Setzen funktioniert ohne weiteres ohne Domain-Angabe.

Ich benutze die Funktionen von Bill
Dortch, die Du vermutlich kennst.

Sagt mir spontan nichts. Hat der an
CGI.pm mitgearbeitet?

Ups, weiß ich jetzt auch nicht. Er stellt in der Cookiecentral und an allen möglichen Ecken des Webs seine JS-Cookie-Funktionen zur Verfügung, die wirklich problemlos sind. Die besten, die ich finden konnte. Sie werden ständig upgedated.

Danke nochmal, Cheatah!

Frank

Hi,

danke für Deine Gedanken, die Du dir
machst! Ich sehe, ich habe ein Problem
gefunden, bei dem sogar die Experten auf
Vermutungen angewiesen sind. Macht mich
etwas stolz. Seltsame Angelegenheit
jedoch.

ich muß Dich enttäuschen: Bei Cookies bin ich kein Experte :wink: Ich habe sie bisher erst ein paar mal verwendet, und das bißchen Wissen, daß ich mir angelesen habe… :smile: Aber auf jeden Fall ist es ein wenig kniffelig.

Ausgetestet hab ich es - es geht nicht.
Das Lesen *fremder* Cookies *soll* ja
auch nicht möglich sein. Darum will ich
ja mein Cookie ausdrücklich *einer*
anderen Domain (sozusagen ersatzweise)
zum Zugriff zuteilen.

Nein, das ist klar - kannst Du es von der Domain aus lesen, die Du im Cookie angegeben hast? Von irgendwo aus muß er ja erreichbar sein… *g*

und wenn der jetzt die Aufforderung von
der Domain a.de bekommt, einen Cookie für
b.de zu setzen, sagt er sich vielleicht
„mach ich nich“ und läßt es :smile:

Den Verdacht habe ich auch, der Browser
will es nicht. Wofür dann aber der
domain-Parameter? Ist doch dann sinnlos,
oder?

Keine Ahnung, ich hatte bisher nie einen Grund, mich darüber zu informieren. Ich hoffe ja immer noch, daß hier jemand mitliest, der sich mit Cookies besser auskennt als ich :wink:

Alternativ könnte es auch sein, daß für
die Domain b.de bereits das Maximum an
Cookies erreicht wurde.

Die ältesten werden dann gelöscht,
zugunsten der neuen, die gesetzt werden.

Getestet mit welchem Browser, oder ist das allgemeingültig? Ich könnte mir denken, daß das clientabhängig ist.

Ich prüfe auf zwei Wegen: Zum einen mit
einem ASCII-Editor,

(Aber Du schließt den Browser doch vorher, oder? *g*)

zum anderen mit der
Browser-Option „Fragen, wenn Cookie
kommt“, der Browser zeigt den Inhalt der
einzelnen Cookies.

Hm, das sollte ausreichen.

Ich benutze die Funktionen von Bill
Dortch, die Du vermutlich kennst.

Sagt mir spontan nichts. Hat der an
CGI.pm mitgearbeitet?

Ups, weiß ich jetzt auch nicht. Er stellt
in der Cookiecentral und an allen
möglichen Ecken des Webs seine
JS-Cookie-Funktionen zur Verfügung, die
wirklich problemlos sind. Die besten, die
ich finden konnte. Sie werden ständig
upgedated.

Ach so. Cookies setze ich via CGI, JavaScript scheint mir dafür wenig geeignet; deswegen kenne ich den Namen wohl nicht. Cookiecentral sagt mir aber was :smile:

Cheatah
http://cheatah.net

Hi Cheatah,

Nein, das ist klar - kannst Du es von der
Domain aus lesen, die Du im Cookie
angegeben hast? Von irgendwo aus muß er
ja erreichbar sein… *g*

Das Cookie kann ich von der setzenden Domain aus lesen. Und es ginge auch von einer fremden Domain aus - wenn das Cookie mit dieser als Parameter überhaupt gesetzt *würde*, da bin ich sicher.

Die ältesten werden dann gelöscht,
zugunsten der neuen, die gesetzt werden.

Getestet mit welchem Browser, oder ist
das allgemeingültig? Ich könnte mir
denken, daß das clientabhängig ist.

Das gehört zum Standard, machen wohl alle Browser.

Cookies setze ich via CGI,
JavaScript scheint mir dafür wenig
geeignet; deswegen kenne ich den Namen
wohl nicht. Cookiecentral sagt mir aber
was :smile:

Ich würde auch gerne per CGI Cookies setzen, aber mit Perl bin ich noch nicht so sattelfest.

Würde denn *damit* die Domain-Übergabe klappen?

Wie setzt man in Perl Cookies?

Warum ist JavaScript nicht so geignet?

Fragen über Fragen… :smile:

Gruß
Frank

Hi,

Ich würde auch gerne per CGI Cookies
setzen, aber mit Perl bin ich noch nicht
so sattelfest.

Würde denn *damit* die Domain-Übergabe
klappen?

das weiß ich nicht… ich hab’s noch nie probiert! Aber eigentlich dürfte da nichts anderes passieren als mit JavaScript.

Wie setzt man in Perl Cookies?

Man ergänzt den HTTP-Header (der ohnehin immer gesendet werden muß) um eine „Set-Cookie“-Zeile, in etwa im gleichen Format wie bei JavaScript. Oder man nutzt die Funktionen des CGI-Moduls (s. Perl-Doku).

Warum ist JavaScript nicht so geignet?

Weil es clientabhängig ist, und der Cookie auch bei abgeschaltetem JavaScript gesetzt werden darf. Jede Sprache hat ihr Einsatzgebiet :smile:

Cheatah
http://cheatah.net

Hi Cheatah,

danke für Deine Infos!

Warum ist JavaScript nicht so geignet?

Weil es clientabhängig ist, und der
Cookie auch bei abgeschaltetem JavaScript
gesetzt werden darf. Jede Sprache hat ihr
Einsatzgebiet :smile:

Das ist natürlich ein Argument. Ausgeschaltetes JavaScript setzt keine Cookies. Allerdings lasse ich auf meine Site ohnehin nur Browser mit eingeschaltetem JavaScript. Von daher kann mir das egal sein.

Ansonsten hat das CGI-mäßige Setzen von Cookies wohl keinen Vorteil gegenüber JavaScript (oder?), was mich beruhigt.

Mein eigentliches Problem (siehe erste Mitteilung in diesem thread) ist leider noch nicht gelöst. Ist hier einer, der irgendwas weiß, das hier noch nicht angesprochen wurde??? Bitte melden!

Danke!

Frank

Hi,

Ausgeschaltetes JavaScript setzt keine
Cookies. Allerdings lasse ich auf meine
Site ohnehin nur Browser mit
eingeschaltetem JavaScript. Von daher
kann mir das egal sein.

whow! Und was ist, wenn jemand z.B. mit Lynx auf Deine Seite kommt? Oder von der Firma aus, die aus Sicherheitsgründen ein Aktivieren von JS nicht zuläßt? Das ist _verdammt_ schlechter Stil… :smile:

Ansonsten hat das CGI-mäßige Setzen von
Cookies wohl keinen Vorteil gegenüber
JavaScript (oder?), was mich beruhigt.

Nun, mit CGI (in Perl) kann man die Daten besser ermitteln und zusammenstellen; zumindest ist mir die Sache da wesentlich eher geheuer als mit JavaScript. Wenn das Script nur auf einem System läuft anstatt auf tausenden, kann man viel eher absehen, daß nicht zufällig noch ein \r mit reinrutscht oder das Datum plötzlich im falschen Format vorliegt oder… Aber sonst? Nein, ich denke, prinzipiell gibt es keinen wesentlichen Vorteil.

Mein eigentliches Problem (siehe erste
Mitteilung in diesem thread) ist leider
noch nicht gelöst. Ist hier einer, der
irgendwas weiß, das hier noch nicht
angesprochen wurde??? Bitte melden!

Hm, warte noch ein paar Tage ab, ob sich was ergibt, und frage dann noch mal neu. Fasse vielleicht noch ein wenig diesen Thread zusammen… Natürlich vorausgesetzt, es meldet sich keiner mehr :wink:

Cheatah
http://cheatah.net

Hi,

Allerdings lasse ich auf meine
Site ohnehin nur Browser mit
eingeschaltetem JavaScript.

whow! Und was ist, wenn jemand z.B. mit
Lynx auf Deine Seite kommt? Oder von der
Firma aus, die aus Sicherheitsgründen ein
Aktivieren von JS nicht zuläßt? Das ist
_verdammt_ schlechter Stil… :smile:

Das, Cheatah, ist ein *bisschen* frech! Die Site die die Cookies braucht, ist wegen Verwendung der Bücherdatenbank der Buchhändlervereinigung (ich bin Buchhändler) vorgegebenerweise auf JavaScript angewiesen. Da kann ich nichts dran machen. Also kann ich nur damit leben.

Mit Lynx kann man heute (fast) nirgendwo shoppen. Von der Firma aus? Die Site *ist* eine Firma :smile: .

eher geheuer als mit JavaScript. Wenn das
Script nur auf einem System läuft anstatt
auf tausenden

Letztendlich muß auch bei CGI-Cookies der Browser, mithin der Client das Cookie setzen. Also auf tausenden…

Aber sonst? Nein, ich denke,
prinzipiell gibt es keinen wesentlichen :Vorteil.

Ist mehr psychologisch - sach ich jetzt mal so.

Fasse vielleicht noch ein wenig diesen
Thread zusammen… Natürlich
vorausgesetzt, es meldet sich keiner mehr
:wink:

Danke Cheatah, das würde mir helfen. Mann, so ein Internet-Problem sollte doch im Internet zu lösen sein - oder?

Frank

Hi,

whow! Und was ist, wenn jemand z.B. mit
Lynx auf Deine Seite kommt? Oder von der
Firma aus, die aus Sicherheitsgründen ein
Aktivieren von JS nicht zuläßt? Das ist
_verdammt_ schlechter Stil… :smile:

Das, Cheatah, ist ein *bisschen* frech!

nein, ein Grundsatz :smile:
Ich habe bisher nur wenige Anwendungen gesehen, in denen es sinnvoll oder auch nur akzeptabel war, bestimmte Clients auszusperren, und alle waren reine Intranet-Anwendungen. Da dies selten ist (gemessen an den Fragen, die gestellt werden), gehe ich einfach nicht davon aus.

Da kann ich nichts
dran machen. Also kann ich nur damit
leben.

Ja, das mußt Du am Ende wissen :smile:

Mit Lynx kann man heute (fast) nirgendwo
shoppen. Von der Firma aus? Die Site
*ist* eine Firma :smile: .

Also nicht von anderen Firmen aus erreichbar?

eher geheuer als mit JavaScript. Wenn das
Script nur auf einem System läuft anstatt
auf tausenden

Letztendlich muß auch bei CGI-Cookies der
Browser, mithin der Client das Cookie
setzen. Also auf tausenden…

100% aller JS-fähigen Clients können Cookies setzen, eine Menge nicht-JS-fähige Clients können Cookies setzen. Weniger als 100% aller JS-fähigen Clients können Cookies setzen, die mit einer speziellen JS-Architektur erstellt werden (wegen möglicher Detailfehler), 0% aller nicht-JS-fähigen Clients können mit JS erstellte Cookies setzen. Eine ganz einfache Rechenaufgabe

(Mit nicht-JS-fähig meine ich auch die Clients, die JS ausgeschaltet haben.)

Aber sonst? Nein, ich denke,
prinzipiell gibt es keinen wesentlichen :Vorteil.

Ist mehr psychologisch - sach ich jetzt
mal so.

Ja, könnte stimmen :smile:

Mann, so ein Internet-Problem sollte doch
im Internet zu lösen sein - oder?

Hm, das Nutznetz kann aber auch recht nützlich sein :smile:

Cheatah
http://cheatah.net