【发布时间】:2019-01-16 20:13:56
【问题描述】:
我查看了 this 堆栈溢出答案以了解 CORS 预检请求。根据这个答案,当 CORS 不存在时,可以进行 CSRF 攻击。
但是查看“简单”请求的要求 需要预检,我看到仍然允许 POST。那可以改变 像 DELETE 一样声明和删除数据!
这是真的! CORS 不会保护您的站点免受 CSRF 攻击。然后 同样,如果没有 CORS,您也无法免受 CSRF 攻击。这 预检请求的目的只是限制您的 CSRF 暴露于 在 CORS 之前的世界中已经存在的东西。
但是,如果浏览器遵循Same Origin Policy,我想不出 CSRF 攻击的可能性。如果恶意站点试图访问另一个站点,浏览器会简单地阻止它,因为请求的来源不同。
如果没有 CORS,有人可以解释 CSRF 攻击是如何发生的吗?
【问题讨论】: