5月29日 22:54
axios 存在哪些安全风险?如何防范 XSS 和 CSRF 攻击?
axios 的安全风险集中在 CSRF、XSS、敏感数据泄露、SSRF 四个方面。
CSRF 防护: axios 内置 CSRF 防护,通过 xsrfCookieName 和 xsrfHeaderName 配置自动从 Cookie 读取 Token 并附加到请求头。后端需设置 Set-Cookie: XSRF-TOKEN=xxx,前端配置 axios.defaults.xsrfCookieName = 'XSRF-TOKEN'。对于 SameSite Cookie 策略,建议后端设置 SameSite=Strict 或 Lax 作为双重保障。
XSS 防护: axios 本身不执行 HTML,但返回数据若直接插入 DOM(如 v-html、dangerouslySetInnerHTML)会导致 XSS。必须对响应数据做转义,或使用 DOMPurify 净化。另外避免在 URL 参数中拼接用户输入,防止反射型 XSS。
敏感数据泄露: Token 不要存 localStorage(XSS 可读取),优先存 HttpOnly Cookie;请求拦截器中不要把 Token 打印到日志;响应拦截器中敏感字段(密码、密钥)应在日志中脱敏。
SSRF 防护: 服务端使用 axios 时,若 URL 来自用户输入,需校验目标地址,禁止请求内网 IP(127.0.0.1、10.x.x.x、192.168.x.x),使用白名单域名策略。
追问:
- axios 的 XSRF 防护机制在前后端分离架构下如何实现?
- SameSite Cookie 的 Strict 和 Lax 模式对 CSRF 防护有什么影响?
- HttpOnly Cookie 方案在跨域场景下如何配置 CORS?
- 如何对 axios 响应数据做自动化脱敏?
- SSRF 攻击中如何绕过 IP 黑名单?白名单方案怎么设计?