请教前端安全问题:前端 Cookie 设置 httpOnly=true 禁止 JS 读取就绝对安全吗

2021-01-03 15:41:20 +08:00
 bojue
设置 httpOnly 是不是就可以在前端防止 Cookie 泄露,防御伪造请求( CSRF )安全问题。

网上查阅的资料,在一些浏览器的旧版本上,虽然支持 httpOnly=true 时禁止读取 Cookie,但是没有预防 Cookie 的写入,可以通过重写 Cookie 覆盖 httpOnly = true 的安全设置[未尝试]。

在现代浏览器环境,是否存在其他方式导致在前端泄露 Cookie
2224 次点击
所在节点    程序员
8 条回复
Mitt
2021-01-03 15:59:09 +08:00
只要不被中间人,JS 投毒就很安全
momocraft
2021-01-03 16:04:54 +08:00
考虑一下想 csrf 的人的视角

必须泄露才能使用吗? js 不能读取等于 js 不能使用吗?
bojue
2021-01-03 16:05:18 +08:00
@Mitt 也就是说 httpOnly 也不安全,通过代理之类的方案可以获取绕开 httpOnly 的设置
bojue
2021-01-03 16:09:42 +08:00
@momocraft 你这个角度很棒,比如胖客户端导致认证信息泄露,引发 csrf 。

但是我现在不能确定 httpOnly 到底能不作为 csrf 的一个方案,确保 cookie 不被获取
liuxey
2021-01-03 16:13:04 +08:00
HttpOnly 能防止 XSS 攻击,但并不能解决 CSRF 问题,防御 CSRF 常用的方法是隐藏表单域存 CSRF token
bojue
2021-01-03 16:19:08 +08:00
@liuxey 谢谢,是我搞错了跨站脚本和请求伪造的概念
YouLMAO
2021-01-03 16:20:27 +08:00
httpOnly 禁止 js 读, 不禁止发给服务器, 不预防 CSRF, 而预防 xss
wunonglin
2021-01-03 16:22:52 +08:00
答:在现代浏览器环境,还存在打开控制台导致在前端泄露 Cookie

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX