相关疑难解决方法(0)

使用CORS Origin头与CSRF令牌进行CSRF保护

此问题仅针对防止跨站点请求伪造攻击.

具体来说:通过Origin头(CORS)保护和通过CSRF令牌保护一样好吗?

例:

所以:

  • 如果我们不检查Origin头(服务器端),并且没有CSRF令牌,我们就有一个CSRF安全漏洞.
  • 如果我们检查一个CSRF令牌,我们是安全的(但它有点乏味).
  • 如果我们检查Origin标头,应该阻止来自evil.com的客户端代码的请求,就像使用CSRF令牌时一样 - 除非,如果有可能的话,evil.com的代码可以设置Origin标头.

我知道,如果我们相信W3C规范在所有现代浏览器中都能正确实现,那么XHR就不可能实现这一点(参见例如跨源资源共享的安全性),至少不是这样(我们可以吗?)

但是其他类型的请求呢 - 例如表单提交?加载脚本/ img/...标签?或者页面可以用来(合法地)创建请求的任何其他方式?或者也许是一些已知的JS黑客攻击?

注意:我不是在谈论

  • 原生应用,
  • 操纵浏览器,
  • example.com页面中的跨站点脚本错误,
  • ...

javascript security csrf cors

93
推荐指数
3
解决办法
3万
查看次数

标签 统计

cors ×1

csrf ×1

javascript ×1

security ×1