Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cross-domain-cookies - a maybe new idea

Tags:

My buddy Carsten Lau came along with an interesting idea on how to read cross-domain-cookies.

Situation: You want to read a cookie from domain "A" that was set on domain "B". Idea: From the client on domain "A", you execute a get-request to a dynamic resource on domain "B" – f.e. an image or javascript, which on the server "B" is in fact a programming language capable of reading cookies like PHP, Java etc. With that request, you send an unique identifier like a session id. So the code on the client which looks at a site on domain "A" could look like this:

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

Now comes the funny part, server B reads on server-side the cookie set by domain "B" and writes the result with the provided session-id either in a DB accessible by domain "A" or returns a response which contains the cookie information to the client on domain "A" which then sends it via AJAX to server "A".

I am pretty sure there is a flaw we didn't find yet. I personally believe server "B" will not be able to read cookie informations because the client-browsers URL points to domain "A", but of course the "getCookie"-request explained above points to "B".

Please tell us what you think about it, why it works or why it can't work. A small proof of concept was, to my big surprise, successful.

like image 463
Raphael Jeger Avatar asked Apr 24 '13 08:04

Raphael Jeger


People also ask

Is cookie cross domain?

There's no such thing as cross domain cookies. You could share a cookie between foo.example.com and bar.example.com but never between example.com and example2.com and that's for security reasons.

How do I fix browser blocks cross domain cookies?

In order to resolve in Chrome adjust Site Settings by going to Site Settings > Cookies and site data > Sites that can always use cookies and copy/paste the Salesforce URL and select the checkbox "Including third-party cookies on this site."

What is cookie domain used for?

The cookieDomain variable is a string, and is set to the domain that you want to store cookies on.

Can we set cookie for other domain?

You cannot set cookies for another domain.


1 Answers

This is normal, because you have control of the 2 domains. This is how most websites achieve cross domain single-sign-on by the way. But if you do not have control of the second domain you cannot read cookies from it.

like image 161
Darin Dimitrov Avatar answered Oct 27 '22 12:10

Darin Dimitrov