如何使用JavaScript阅读安全cookie

时间:2011-11-09 11:24:52

标签: javascript security cookies

有没有办法用javascript读取安全cookie?我尝试使用document.cookie进行操作,据我所知http://securitymusings.com/article/909/secure-cookies-the-httponly-flag我无法以这种方式访问​​安全cookie。

有人能为我提供解决方法吗?

4 个答案:

答案 0 :(得分:92)

设置了不同的浏览器enable different security measures when the HTTPOnly标志。例如,Opera和Safari不会阻止javascript写入cookie。但是,在所有主流浏览器的最新版本中始终禁止阅读。

但更重要的是为什么您想要阅读HTTPOnly Cookie吗?如果您是开发人员,只需禁用该标记并确保test your code for xss。我建议您尽可能避免禁用此标志。应始终设置HTTPOnly标志和“安全标志”(强制cookie通过https发送)。

如果您是攻击者,那么您希望劫持会话。但是有一种简单的方法可以劫持会话,尽管有HTTPOnly标志。您仍然可以在不知道会话ID的情况下骑车。 MySpace Samy worm做到了这一点。它使用XHR来读取CSRF令牌,然后执行授权任务。因此,攻击者几乎可以执行已登录用户可以执行的任何操作。

人们对HTTPOnly旗帜抱有太多信心,XSS仍然可以被利用。您应该围绕敏感功能设置障碍。如更改密码字段应该要求当前密码。管理员创建新帐户的功能应该需要验证码,CSRF prevention technique不能轻易绕过XHR

答案 1 :(得分:37)

HttpOnly cookie的重点在于它们无法被JavaScript访问。

脚本读取它们的唯一方法(除了利用浏览器错误)是在服务器上有一个协作脚本,它将读取cookie值并作为响应内容的一部分回显它。但是,如果你能做到这一点,为什么要首先使用HttpOnly cookies?

答案 2 :(得分:1)

Httponly cookie 的目的是通过脚本无法访问,所以你不能。

答案 3 :(得分:0)

其中一种方法是使用safari网络检查器,在“存储”选项卡中,您可以看到所有cookie(无论是否为httpOnly),只需选择Command + C即可复制它。

一旦有了字符串,就可以使用任何cookie解析器或纯JavaScript轻松地将其解析回去。

enter image description here