有 CORS 还需要 CSRF token 吗?

查看 31|回复 3
作者:yodhcn   
在现代浏览器环境,要防范 CSRF ,检查 origin 头就足够了吧?还需要 CSRF token 吗?
GeekGao   
首先要明确 CSRF token 的定义:它是一个在服务器端生成并在客户端(通常是通过 HTTP cookie 或 HTML 表单)携带的随机值。当服务器接收到一个请求时,它会检查请求中的 token 是否与服务器保存的 token 匹配。由于这个 token 是在用户登录时生成的,攻击者无法预知其值,因此无法构造有效的 CSRF 攻击
其次要知道 Origin 头是可以被篡改的,而且还有非浏览器环境是可以不遵守同样的 Origin 头规则。
结论,就是依然有必要。
keakon   
这 2 者作用不一样啊,CORS 是跨域的安全设置,你没跨域使用 xhr 、fetch 时不受影响。
yodhcn
OP
  
@GeekGao 但是,非浏览器环境 CSRF token 也同样没用啊?可以通过请求直接拿到 CSRF token 与 cookie
您需要登录后才可以回帖 登录 | 立即注册

返回顶部