关于会话 cookie 的安全问题

Security Concerns regarding session cookies

我正在使用一个网站系统,其中会话和记住 cookie 被标记为 Secure 和 HttpOnly。现在由于各种原因,我需要访问会话并记住 JavaScript(带子域的 WebSocket 身份验证)中的 cookie。出于安全考虑,关闭两个 cookie 的“HttpOnly”标志是否合理?

我知道这为 XSS 攻击打开了获取这些 cookie 的大门。但是如果我保证不可能存在XSS,你觉得可以吗?

您好 马文

虽然使用 httpOnly 的主要原因是 XSS,但使用没有此标志的 cookie 存在风险。

最明显的风险是您的应用程序不易受到 XSS 攻击的说法听起来有点过于乐观。如果您有充分的理由这么认为,那很好,但我认为的一个原因是页面是否只是静态的(但为什么它会设置 cookie)。接受这一点的另一个原因可能是 XSS 是一个可以接受的风险,例如,应用程序位于一个来源上,出于某种充分的理由它无关紧要。但是这些应该被仔细考虑并且可能包含在一个相当详细的威胁模型中。任何测试或扫描(对我来说)都是不够的,如果 XSS 真的让我担心的话,我也不能接受应用程序代码中的任何缓解措施。就像现在它可能真的没有可利用的 XSS。明天怎么样? 5年,30个不同的人改了..?

此外,httpOnly 不仅针对其经典意义上的 XSS。例如,您可能正在使用 3rd 方组件,javascript 不受您的控制,而是由您的应用程序加载。通过使用 httpOnly cookie,那些 client-side 组件也将无法访问 cookie,但如果没有 httpOnly,它们将无法访问。你就那么信任他们吗?也许你不应该 - 或者也许没关系,这完全取决于你如何模拟威胁以及你愿意接受什么。