通过Javascript将cookie设置为HttpOnly

66 javascript cookies http

我有一个cookie 不能通过JavaScript HttpOnly设置此cookie HttpOnly吗?

Bal*_*usC 122

一个HttpOnly饼干意味着它不能提供给脚本语言如JavaScript.所以在JavaScript中绝对没有API可用于获取/设置HttpOnlycookie 的属性,否则会破坏其含义HttpOnly.

只需使用服务器端使用的任何服务器端语言在服务器端设置它.如果JavaScript是绝对必要的,你可以考虑让它发送一些(ajax)请求,例如一些特定的请求参数,它触发服务器端语言来创建一个HttpOnly cookie.但是,这仍然可以让黑客HttpOnly通过XSS 轻松更改,并且仍然可以通过JS访问cookie,从而使HttpOnly你的cookie完全没用.

  • 我真的没有看到能够从JS设置HttpOnly会"破坏'HttpOnly`的含义",只要cookie仍然无法从脚本中读取...... (24认同)
  • @BalusC浏览器扩展是用JS编写的,已经有一段时间了https://developer.chrome.com/extensions"你用HTML,JavaScript和CSS等网络技术编写它们." https://developer.mozilla.org/en-US/Add-ons/WebExtensions/What_are_WebExtensions" - 的JavaScript,HTML和CSS - 他们正在使用标准的Web技术编写的.再加上一些专门的JavaScript API"而例如一个开源的一个写于2013年https://github.com/Asana/Chrome-Extension-Example (8认同)
  • @MIWright它可能允许您编写httponly cookie,然后允许您暴力破解会话cookie等。因此XSS攻击(尤其是DoS)仍然是可能的。 (7认同)
  • 我想知道像"EditThisCookie"浏览器扩展的客户端应用程序如何将HttpOnly标志更改为false. (4认同)
  • MDN 说这是禁止的。https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie (4认同)