在使用axios请求egg.js封装的post接口时出现missing csrf token 或 invalid csrf token。踩过坑的新手估计不在少数,本篇记录一下解决方法。

Web 安全概念:Web 应用中存在很多安全风险,这些风险会被黑客利用,轻则篡改网页内容,重则窃取网站内部数据,更为严重的则是在网页中植入恶意代码,使得用户受到侵害。
常见的安全漏洞如下:
XSS 攻击:对 Web 页面注入脚本,使用 JavaScript 窃取用户信息,诱导用户操作。CSRF 攻击:伪造用户请求向网站发起恶意请求。钓鱼攻击:利用网站的跳转链接或者图片制造钓鱼陷阱。对于这些风险,Egg框架本身内置了丰富的解决方案。回归本题,其中出现missing csrf token就是因为CSRF 的防御方案。
解决方案如下:
注意: 框架的安全插件是默认开启的。除非清楚的确认后果,否则不建议擅自关闭安全插件提供的功能。
security的配置解释: 通过 header 的 token 字段传递 CSRF token,默认字段为 x-csrf-token。
Node环境请求post接口,没有Cookie信息,所以还需要在请求的headers中加上Cookie,不然会报错invalid csrf token。代码如下:参考文档:
欢迎访问:个人博客地址