При поиске в список куки для действительного печенья, сравнение доменов атрибутов печенья является сделано с доменным именем интернетовской хоста, с которого URL будет неправдоподобными. Если есть хвостовое совпадение, , то cookie пройдет путь , соответствующий, чтобы узнать, нужно ли его отправлять. «Соответствие хвоста» означает, что атрибут домена сопоставляется с хвостом от полного доменного имени хоста. Атрибут домена «acme.com» соответствует именам хостов «anvil.acme.com», а также «shipping.crate.acme.com». Только хосты в указанном домене могут установить cookie для домена, а домены должны иметь не менее двух (2) или трех (3) периодов в них, чтобы домены домена получили форму: «.com», «. edu "и" va.us ". В любом домене, который сбой в одном из , на семи специальных доменах верхнего уровня , перечисленных ниже, требуется только два периода. Для любого другого домена требуется не менее . Семь специальных верхних уровней доменов: «COM», «EDU», «NET», «ORG», «GOV», «MIL» и «INT».
Значение по умолчанию для домена - имя хоста сервера, на котором сгенерировал ответ файла cookie.
читать here.
вы можете загрузить iframe с хоста, который затем перезагружает себя закодированным значением cookie в части сегмента (после #).
вы можете получить доступ к атрибуту document.location из родительского окна (попадает только в то, что доступно). расшифруйте его и передайте на сервер, выполнив запрос ajax.
Это может быть так.
xss.php (находится на cookie.example.com):
<?php
$data = array(
'uid' => $_COOKIE['uid'],
'loginhash' => $_COOKIE['loginhash']);
header('Location: xss.php#'.urlencode(json_encode($data)));
для данного конкретного случая не обязательно быть хэштегом! его просто удобно для других ситуаций. это также можно сделать в javascript.
другой сайт встраивается xss.php:
<iframe id="cookies" src="http://cookies.example.com/xss.php"></iframe>
you need to somehow delay the following of do it in a loop that stops after 5 seconds or something.
if(document.getElementById('cookies').location != 'http://cookies.example.com/xss.php') {
// read location, extract hashtag, json decode using javscript, there you have your user. send it to server for validation or whatever.
}
это teqnique называется XSS ПОЛУЧАТЬ. он, например, используется facebook для всех их библиотек подключений javascript.
Вероятно, лучшим способом будет какой-то токен, обменный протокол, такой как openid.
Amazon использует это тоже.
вы можете настроить провайдера openid (есть библиотеки, которые могут сделать это из коробки) и настроить его для автоматического перенаправления обратно без взаимодействия с пользователем. я часто видел протокол openid, используемый для некоторых других целей, как междоменная связь.
Я думаю, что эта статья объясняет довольно лаконично: http://www.codeguru.com/csharp/csharp/cs_internet/article.php/c19417/Sharing-Cookies-Across-Domains.htm – peteski