Javascript 从其他路径检索cookie

Javascript 从其他路径检索cookie,javascript,path,dns,cookies,Javascript,Path,Dns,Cookies,我当前的文档URL是http://127.0.0.1/foo,我需要更改http://127.0.0.1/bar的cookie值。 document.cookie为空,因为文档的URL为foo。 目前,我只想读取cookie值。 有什么线索吗?创建cookie时,如果将路径设置为“/”而不是“foo”,则可以在域中的任何位置读取,包括“/foo”和“/bar”等。您无法从其他路径访问cookie,否则会造成安全漏洞 我能想到的唯一方法是让/bar设置一个cookie,它的路径=/,这样/中的所有

我当前的文档URL是http://127.0.0.1/foo,我需要更改http://127.0.0.1/bar的cookie值。 document.cookie为空,因为文档的URL为foo。 目前,我只想读取cookie值。
有什么线索吗?

创建cookie时,如果将路径设置为“/”而不是“foo”,则可以在域中的任何位置读取,包括“/foo”和“/bar”等。

您无法从其他路径访问cookie,否则会造成安全漏洞


我能想到的唯一方法是让
/bar
设置一个cookie,它的
路径=/
,这样
/
中的所有页面(包括
/foo
)都可以访问它。

正如JJ和grawity提到的那样,您无法从您的页面执行此操作。然而,你有一个工作要做

一,。放置一个指向的iframe。在存储cookie值的“bar”页面上有一个隐藏元素。(此iframe的大小为1*1,因此不可见)

二,。在“foo”页面上使用JavaScript获取cookie值

类似的方法(经过修改)也可用于写入cookie值

谢谢

Ramjee.

您可以创建一个指向
/bar
内资源的
,并在其中跨帧脚本。例如:

<iframe src="/bar/blank.html" id="barframe"></iframe>

var barframe= document.getElementById('barframe');
var bardocument= 'contentDocument' in barframe? barframe.contentDocument : barframe.contentWindow.document; // IE compat
alert(bardocument.cookie);

var barframe=document.getElementById('barframe');
var bardocument='contentDocument'在条形框架中?barframe.contentDocument:barframe.contentWindow.document;//同胞
警报(bardocument.cookie);

Cookie
path=
是防止意外的Cookie名称冲突的便利措施。考虑到不同路径共享一个JavaScript源,这不是一种有效的安全机制。

我无法更改cookie的创建和路径。这意味着不可能从foo访问bar的cookie?这不是一个大的安全问题,因为cookie实际上没有受到保护。由于SOP忽略路径,cookie路径不是一个有意义的安全屏障。这不会让internet上的任何人抓住cookie吗?+1指出cookie路径不是一个有意义的安全墙。路径是一个性能特性,而不是一个安全特性。。。我错过了“barframe.contentDocument”部分。非常感谢+从我这里得到1。