我熟悉持久性和非持久性XSS.我也知道同源策略可以防止/限制源自一个网站页面的请求转到另一个网站服务器.这使我认为相同的原始策略至少可以阻止非持久性类型的XSS攻击(因为在持久性攻击类型中,恶意代码来源与被盗的私有信息相同).我的理解是否正确?SOP可以用来阻止/减少这些攻击吗?
编辑:好吧,我在浏览器端调用两个脚本之间的方法和在另一个网站上调用HTTP POST之类的方法时感到困惑.谢谢你的回答jakber.
现在我有另一个问题,SOP是否能够阻止跨站点请求伪造?维基百科中给出的示例讨论了Bob在聊天论坛上访问由Mallory创建的恶意图像标记.但是,根据SOP规则,恶意脚本不应该能够访问银行的cookie.我在这里错过了什么吗?
通常没有.
非持久性或反射式XSS攻击利用作为页面内容回送的输入,而不进行适当的清理,而不会持久化.在两种情况下,注入的脚本似乎都来自被利用的域.
例如,如果你在PHP中执行此操作:echo $_GET['param']
并向页面发送链接给包含
?param=
它的人是一种非持久性XSS攻击,而同源策略与它无关.
同源意味着您无法直接注入脚本或修改其他域上的DOM:这就是您需要首先找到XSS漏洞的原因.