2012-11-06 62 views
0

有没有办法从JavaScript访问与Cookie相关的数据,如路径,标志和到期日期?我所能找到的cookie访问权限为document.cookie,它只提供名称值对的列表。为什么cookie访问界面如此有限?在Javascript中访问cookie信息

+1

名称值对应该是您正在查找的数据。 –

+0

我列出的所有其他信息如何?其中路径是最关键的。 – Antimony

回答

0

不,根本没有安全的跨浏览器支持。推理归结为安全性。

cookies的目标是允许从浏览器到服务器的来回通信。
如果您可以允许任意前端脚本手动编辑cookie的域名/路径/过期时间(仅为了解其名称),否则将导致很多潜在的安全漏洞(如果不是用于欺骗访问)然后至少为了无形地跟踪人。

这并不是说饼干固有地安全,甚至是特别安全。
我的意思是说,通过允许任何和所有JS编辑发送到服务器的任何和所有cookie数据(不仅仅是CRUD),任何伪装的安全性都会在心跳中消失。

+0

实际上,您可以编辑Cookie的路径和到期日期。你出于某种原因无法阅读它们。具有讽刺意味的是,无法读取cookie的路径导致潜在的安全漏洞。事实上,JavaScript可以“编辑任何和所有发送到服务器的cookie数据”(甚至由于cookie jar溢出,http只能是cookie)。 – Antimony

+0

这不是实际编辑路径,而是制作属于第二个路径的第二个cookie。因此,您可以拥有一个具有特定名称的网站级Cookie,然后是一个具有相同名称的文件夹级别Cookie,并且最接近的祖先是指定页面上显示的Cookie。当然,你仍然可以编辑这个值,是的,到期 - 我不确定为什么我提到了这个值,将它看作是将cookie标记为删除的唯一方法(仍然存在,直到浏览器会话结束) 。域和路径一旦设置就不可编辑。您可以设置一个值,或者创建一个覆盖的cookie ... – Norguard

+0

@Antimony ...不同的子域/路径,但是您无法修改原始cookie的路径/域一旦设置(不会过期,并重新创建新的一个)。 – Norguard