首页 > 代码库 > 安全测试 - CSRF攻击及防御

安全测试 - CSRF攻击及防御

CSRF(Cross-site request forgery跨站请求伪造)

尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。 

信任站点A, 恶意站点B, 用户C

攻击流程:

1. 前提: 用户C登录站点A --> 站点A会在用户本地浏览器产生COOKIE

2. 用户C在登录情况下,访问恶意站点B --> B会偷偷发出访问A的请求给用户C

3. 根据B的请求,用户C的浏览器带着cookie访问A

4. A无法判断来源,会按用户C的权限处理B的请求

 

如何防御:

重要场景:如支付,转账,修改密码、修改个人信息等

一、验证refer: HTTP请求中的refer字段,需判断来源
二、加入token: 每个请求生成一个token

安全测试 - CSRF攻击及防御