简单点说,CSRF 就是利用用户的登录态发起恶意请求。
如果接口是 Post 提交的,就相对麻烦点,需要用表单来提交接口
如何防御
- Get 请求不对数据进行修改
- 不让第三方网站访问到用户 Cookie
- 阻止第三方网站请求接口
SameSite
可以对 Cookie 设置 属性。该属性设置 Cookie 不随着跨域请求发送,该属性可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。
验证 Referer
Token
服务器下发一个随机 Token(算法不能复杂),每次发起请求时将 Token 携带上,服务器验证 Token 是否有效。