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