2013-04-24 15 views
18

Mein Kumpel Carsten Lau kam mit einer interessanten Idee zum Lesen von Cross-Domain-Cookies.Cross-Domain-Cookies - eine vielleicht neue Idee

Situation: Sie möchten einen Cookie von der Domäne "A" lesen, der für Domäne "B" festgelegt wurde. Idee: Von dem Client auf Domäne "A" führen Sie eine Get-Anforderung an eine dynamische Ressource auf Domäne "B" aus - z. ein Bild oder Javascript, das auf dem Server "B" tatsächlich eine Programmiersprache ist, die Cookies wie PHP, Java usw. lesen kann. Mit dieser Anfrage senden Sie eine eindeutige Kennung wie eine Session-ID. So ist der Code auf dem Client, die wie folgt aussehen an einem Standort auf Domain „A“ könnte aussieht:

<img src="www.domainB.com/?getCookie.php?sessionID=1234"> 

Jetzt kommt der lustige Teil, liest Server B auf Server-Seite das Cookie von Domain „B“ und schreibt das Ergebnis mit der angegebenen Session-ID entweder in eine DB, auf die die Domäne "A" zugreifbar ist, oder gibt eine Antwort zurück, die die Cookie-Informationen an den Client in der Domäne "A" enthält, die sie dann über AJAX an den Server "A" sendet.

Ich bin ziemlich sicher, dass es einen Fehler gibt, den wir noch nicht gefunden haben. Ich persönlich glaube, dass der Server "B" keine Cookie-Informationen lesen kann, da die Client-Browser-URL auf die Domäne "A" zeigt, aber die oben erläuterte "getCookie" -Anforderung zeigt natürlich auf "B".

Bitte sagen Sie uns, was Sie darüber denken, warum es funktioniert oder warum es nicht funktionieren kann. Ein kleiner Proof of Concept war zu meiner großen Überraschung erfolgreich.

+2

Dies sollte funktionieren. Auf diese Weise handhaben Websites Anmeldungen für Benutzer aus verschiedenen Domänen, da die Domänen Datenbanken gemeinsam nutzen, die Sitzungsdaten enthalten. – Joseph

+1

Danke. Überall im Internet und hier auf SO können Sie "Cross-Domain-Cookies = unmöglich" lesen, während dieser einfache Hack es tatsächlich ermöglicht, wenn Sie beide Domains besitzen und ein kleines Skript auf Domain "B" hinzufügen können? Seltsam ... –

+7

Das ist nichts Seltsames. Sie lesen oder setzen hier kein Cookie für eine andere Domain - das ist nicht nur in Ihrer Domain möglich. Wenn Sie "Hilfe" von der anderen Domain haben, dann gibt es wenig "cross-domain" darüber - Sie erhalten die Info _by choice_ von der anderen Domain; während die domänenübergreifende Richtlinie vorhanden ist, um zu verhindern, dass dies geschieht, wenn die andere Domäne dies nicht möchte. – CBroe

Antwort

15

Dies ist normal, weil Sie die Kontrolle über die 2 Domänen haben. So erreichen übrigens die meisten Websites domainübergreifendes Single-Sign-On. Aber wenn Sie die Kontrolle über die zweite Domain nicht haben, können Sie keine Cookies von ihr lesen.

+3

sicher, Sie haben Recht, Aber meistens, wenn Sie nach domänenübergreifenden Cookies suchen, gibt es immer einfache (und falsche) "nicht mögliche" Antworten. Wenn Sie beide Domains besitzen, gibt es überhaupt kein Problem. –

Verwandte Themen