为什么飞行前 CORS 不能阻止 CSRF 攻击?



每个人都说CORS对CSRF攻击无能为力。这是因为CORS会阻止外部域外部访问您域中的(读取)资源 - 但 becors demand demand decors bocors block of bock offect ofert bess of tocors tocors bocors bocors。因此,邪恶的网站可以发送改变状态的删除请求,而不会关心他们无法阅读结果。

一切都很好。

除飞机前托管外。

在这种情况下,CORS在发送请求之前先查看该请求,并检查是否合法。如果不是这样,请求将被拒绝。

因此,CSRF攻击者试图发送的删除请求失败了飞行前检查,因此被拒绝。CSRF攻击失败。

我在这里缺少什么?

前飞行请求并不能阻止CSRF 一般。例如,并非所有跨域AJAX调用都会生成飞行前请求,而普通的帖子不会。在飞行前请求确实确实有助于降低风险的情况下,可能有特定情况。

另一个问题与检查参考器/原点相同。虽然攻击者不可能在恶意网站上的普通JavaScript中覆盖推荐人或来源,但可能可以使用合适的浏览器插件(例如旧版本的Flash)这样做。如果浏览器插件允许执行此操作,则攻击者可能能够在没有前飞行前发送交叉原始请求。因此,您不想仅依靠飞行前请求。

最新更新