GET 请求的 CSRF 保护

CSRF protection for GET requests

我有一个 RESTful API,我通过自己制作的网站与之互动。我有 POST、DELETE、PUT 等请求得到充分保护,因此攻击者无法通过 CSRF 对数据库进行任何更改。

但是,如果有人使用 CSRF 向网站发出 GET 请求,我担心他们可能能够查看响应,这可能会泄露存储在数据库中的敏感数据。

他们是否可以查看对跨站点 GET 请求的响应,或者这肯定完全由 Javascript 的同源策略处理?

is this definitely, completely taken care of by Javascript's Same Origin Policy?

是的。这就是同源策略的意义所在。

要易受攻击,您需要:

  • 使用 JSONP 或 CORS 之类的东西在 SOP 中打一个洞
  • 不执行用户身份验证,这样他们就可以访问数据,而无需经过身份验证的用户浏览器作为中间人