有没有办法用JavaScript读取安全的cookie?
我尝试使用来做到这一点document.cookie
,据我在本文中关于安全cookie和HttpOnly标志所看到的,我无法以这种方式访问安全cookie。
有人可以建议解决方法吗?
有没有办法用JavaScript读取安全的cookie?
我尝试使用来做到这一点document.cookie
,据我在本文中关于安全cookie和HttpOnly标志所看到的,我无法以这种方式访问安全cookie。
有人可以建议解决方法吗?
Answers:
设置HTTPOnly标志时,不同的浏览器将启用不同的安全措施。例如Opera和Safari不会阻止javascript写入cookie。但是,所有主要浏览器的最新版本始终禁止阅读。
但更重要的是,为什么 要读取HTTPOnly
Cookie?如果您是开发人员,只需禁用该标志并确保您测试了xss的代码。我建议您尽可能避免禁用此标志。该HTTPOnly
标志和“安全标志”(这迫使cookie被发送通过HTTPS)应始终设置。
如果您是攻击者,那么您想劫持一个会话。但是,尽管有HTTPOnly
标志,也有一种简单的方法可以劫持会话。您仍然可以在不知道会话ID的情况下参加会话。MySpace Samy蠕虫正是这样做的。它使用XHR读取CSRF令牌,然后执行授权任务。因此,攻击者几乎可以执行登录用户可以执行的任何操作。
人们对HTTPOnly
国旗非常有信心,XSS仍然可以被利用。您应该围绕敏感功能设置障碍。例如更改密码字段应要求使用当前密码。管理员创建新帐户的能力应要求验证码,这是一种CSRF预防技术,不能轻易通过XHR绕过。
HttpOnly cookie的全部要点是,JavaScript无法访问它们。
脚本读取它们的唯一方法(利用浏览器错误除外)是在服务器上拥有一个协作脚本,该脚本将读取cookie值并将其作为响应内容的一部分回显。但是,如果可以并且愿意这样做,为什么首先要使用HttpOnly cookie?