🚨 CSRF (跨站请求伪造)防御
CSRF (跨站请求伪造)
CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种常见的网络攻击手段,攻击者通过诱导用户访问恶意网站或点击恶意链接,利用用户的登录状态发送恶意请求到目标网站,从而以用户的身份执行未授权的操作。
CSRF防御基本原理
CSRF攻击防御的核心是验证请求来源的合法性,确保请求确实来自用户的真实意图而非攻击者伪造。主要防御方法包括:
- CSRF Token验证:服务端生成随机Token嵌入表单或请求参数,验证请求合法性,防止伪造请求。
- SameSite Cookie属性:通过设置Cookie的SameSite属性(Strict/Lax/None),限制跨站携带Cookie(Lax为默认值,平衡安全与功能)。
- 双重提交Cookie验证:客户端同时提交Token和Cookie中的Token,服务端比对两者是否一致(需结合前后端实现)。
- 校验Referer头部:检查HTTP请求头的Referer字段,确保请求来源与合法域名一致(需注意隐私和兼容性问题)。
- 自定义HTTP头部验证:在Ajax请求中添加自定义头部(如X-Requested-With),服务端验证其存在性(依赖浏览器同源策略限制跨域自定义头部)。