奇怪的Javascript /跨站点cookie问题

时间:2009-07-23 14:11:50

标签: javascript cookies

我在域B上运行了一个PHP脚本,当调用它时会生成一些JS。

我的想法是,在给定的html页面中我可以:

<script src="http://b.domain/myscript.php"></script>

因此,当页面加载时,将调用脚本并生成JS并在本地页面上运行。

问题是myscript.php依赖于B的域cookie。如果我在地址栏中键入http://b.domain/myscript.php,脚本工作正常,我在浏览器窗口中看到JS文本。

但是当我将上面的引用行包含在运行在不同网络服务器上的网页中时,将其称为A,它不起作用。 JS仍然生成,但是不正确,因为脚本没有可用的cookie。

因此,简而言之,直接访问脚本,cookie可用,一切都很好。 通过来自其他域提供的页面的呼叫访问脚本,并且它无法访问cookie。

我不明白为什么,在调用B域上运行的脚本时,浏览器似乎没有发送B的cookie?

1 个答案:

答案 0 :(得分:1)

这是一项安全功能。 Cookie信息永远不会提供给设置Cookie的域以外的域。有关详细信息,请参阅:http://en.wikipedia.org/wiki/Cross-site_scripting