如何防御 CSRF 攻击?
CSRF 攻击可以使用以下方法来防护:
1.进行同源检测,
服务器根据 http 请求头中 origin 或者 referer信息来判断请求是否为允许访问的站点,从而对请求进行过滤。
当origin 或者 referer 信息都不存在的时候,直接阻止请求。
这种方式的缺点是有些情况下 referer 可以被伪造,同时还会把搜索引擎的链接也给屏蔽了。
所以一般网站会允许搜索引擎的页面请求,但是相应的页面请求这种请求方式也可能被攻击者给利用。(Referer 字段会告诉服务器该网页是从哪个页面链接过来的)
2.使用 CSRF Token 进行验证,
服务器向用户返回一个随机数 Token ,
当网站再次发起请求时,在请求参数中加入服务器端返回的 token ,
然后服务器对这个 token 进行验证。
这种方法解决了使用 cookie单一验证方式时,可能会被冒用的问题,
但是这种方法存在一个缺点就是,我们需要给网站中的所有请求
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理