在 cookie 列表中搜索
有效的 cookie,比较
cookie 的域属性是
用互联网域名制作的
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(位于 cookies.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.
}
此技术称为 xss 接收。例如,它被 facebook 用于他们所有的 javascript 连接库。
一种可能更好的方法是某种令牌交换协议,例如 openid。
亚马逊也使用这个。
您可以设置一个 openid 提供程序(有可用的库可以开箱即用)并将其设置为自动重定向回来,无需用户交互。我经常看到 openid 协议用于其他用途,例如跨域通信。