【发布时间】:2018-09-15 04:21:39
【问题描述】:
我了解 webstorage 易受 xss 攻击
而且 Cookie 到 CSRF 也有意义
让我不解的是,好像隐含的说cookie不易受xss攻击,但不是也易受xss攻击吗?
如果我可以在其他浏览器上运行脚本,我想我可以只向服务器发送请求并获取重要数据,因为浏览器会自动附加 cookie,我不需要做任何事情来获得身份验证。
【问题讨论】:
我了解 webstorage 易受 xss 攻击
而且 Cookie 到 CSRF 也有意义
让我不解的是,好像隐含的说cookie不易受xss攻击,但不是也易受xss攻击吗?
如果我可以在其他浏览器上运行脚本,我想我可以只向服务器发送请求并获取重要数据,因为浏览器会自动附加 cookie,我不需要做任何事情来获得身份验证。
【问题讨论】:
如果设置了httpOnly标志的cookie,则无法从Javascript访问(注入的js无法读取或写入此类cookie),因此如果是httpOnly,则无法窃取cookie值。这与会话 cookie 非常相关。在这种情况下,此 cookie 不受 XSS 影响。请注意,这仅仅是因为 httpOnly 标志 - 没有 httpOnly 的 cookie 会受到 XSS 的影响,因为 Javascript 可以访问它们。
任何cookie(无论flags*如何)仍然会与任何请求一起发送到接收它的服务器,但那是csrf的领域,实际上,这是csrf的根本问题。如果任何人(来自任何网站)向服务器发出请求,该服务器的任何 cookie 都会被发送,如果没有保护,攻击者可以利用 csrf。这就是为什么如果您有基于 cookie 的身份验证,您需要针对 csrf 进行保护。
还要注意,如果页面易受 XSS 攻击,那么任何 csrf 保护都是无用的,因为 xss 可用于读取令牌,无论它存储在何处。
*旁注:新的 SameSite cookie 标志改变了这一点,但只有 Chrome 支持。
【讨论】: