V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bojue
V2EX  ›  程序员

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

  •  
  •   bojue ·
    bojue · 2021-01-03 15:41:20 +08:00 · 2318 次点击
    这是一个创建于 1427 天前的主题,其中的信息可能已经有所发展或是发生改变。
    设置 httpOnly 是不是就可以在前端防止 Cookie 泄露,防御伪造请求( CSRF )安全问题。

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

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

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

    但是我现在不能确定 httpOnly 到底能不作为 csrf 的一个方案,确保 cookie 不被获取
    liuxey
        5
    liuxey  
       2021-01-03 16:13:04 +08:00   ❤️ 1
    HttpOnly 能防止 XSS 攻击,但并不能解决 CSRF 问题,防御 CSRF 常用的方法是隐藏表单域存 CSRF token
    bojue
        6
    bojue  
    OP
       2021-01-03 16:19:08 +08:00
    @liuxey 谢谢,是我搞错了跨站脚本和请求伪造的概念
    YouLMAO
        7
    YouLMAO  
       2021-01-03 16:20:27 +08:00   ❤️ 2
    httpOnly 禁止 js 读, 不禁止发给服务器, 不预防 CSRF, 而预防 xss
    wunonglin
        8
    wunonglin  
       2021-01-03 16:22:52 +08:00   ❤️ 1
    答:在现代浏览器环境,还存在打开控制台导致在前端泄露 Cookie
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2584 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 11:18 · PVG 19:18 · LAX 03:18 · JFK 06:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.