【问题标题】:Does it make sense to add secure and httpOnly flags to an expired cookie?向过期的 cookie 添加安全和 httpOnly 标志是否有意义?
【发布时间】:2013-07-25 20:53:54
【问题描述】:

我们的一个客户对我们的应用程序进行了渗透测试,并报告在使用 cookie 时缺少标志。

在设置 cookie 时,我们应该始终使用 httpOnlysecure 标志。

经过一些测试,我意识到 cookie 在设置时实际上使用了这个标志,但有一个例外:注销。

在注销时,某些 cookie 设置了过期日期,以删除未使用的 cookiesecurehttpOnly

这是否代表安全风险?设置过期 cookie 时设置这些标志有意义吗?

【问题讨论】:

    标签: security cookies httponly


    【解决方案1】:

    不,假设您的应用程序中没有漏洞,那么注销时标志无关紧要。

    但是,您应该按照渗透测试人员所说的去做,因为如果未设置标志,您的应用程序中可能存在其他可以使用此 cookie 进行利用的安全漏洞。换句话说,如果您的应用在其他方面是安全的,那么 cookie 就无关紧要,但它可能确实很重要,因为无法保证您的应用是安全的。

    一个例子是一个应用程序没有正确终止或关闭会话。注销 cookie 发送给客户端时没有标记,因此会以某种方式(例如 MitM 或 Wire Sniffing)受到损害。攻击者将 cookie 连同任何其他旨在利用漏洞的任意数据一起提交回应用程序,从而触发漏洞并通过恢复前一个漏洞或接收新会话来获得实时会话(如著名的 NULL 会话攻击) .

    这是一个安全漏洞的经典案例,它本身无用,但添加了一个链接到可用于获得妥协的链。

    【讨论】:

    • 你的前两段是在说两个不同的东西?
    • 在某些情况下,“不安全”的 cookie 是 jsessionidsso(Tomcat 中的 Valve 单点登录)。并且在注销并在服务器端执行 session.invalidate() 时设置为过期。
    • @PeeHaa 我试图澄清。我想说的是,如果应用程序中没有其他漏洞(这不太可能),则无需标记此 cookie。但是可能还有其他漏洞,因此最好在不必要的情况下标记 cookie,而不是给攻击者一个额外的链中的链接。
    • @Tinchogob 现在可能是安全的,但将来有人可能会打开一个新的漏洞或更改一些会造成漏洞的东西。这就是渗透测试人员推荐使用该标志的原因。他们还必须推荐 something 来证明您刚刚为测试支付了 5 个数字 :-)
    • 我不明白一些事情:按设计使 cookie 过期并不会传递 cookie 的值。例如Set-Cookie:mycookie=.; path=/mypath; expires=Thu, 01 Jan 1970 00:00:00 GMT;。没有价值可以拦截,因此没有价值受到损害。
    猜你喜欢
    • 2012-10-13
    • 2016-01-29
    • 2021-04-16
    • 2016-04-02
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2015-06-14
    相关资源
    最近更新 更多