常见web攻击手段及防御措施

CSRF 攻击:跨站请求伪造

跨站请求伪造 CSRF (Cross-site request forgery),是一种挟制用户在当前已登录的 Web 应用程序上执行非本意操作的攻击方法。

​ 它利用用户已经登录的身份信息,在用户无感的情况下,以用户的名义完成操作。

攻击流程

​ 一次 CSRF 攻击发生的过程可能是这样:
CSRF-攻击流程图示

​ 我们来简述一下图示流程:

​ A. 用户 A 登录购物网站 http://www.example.shop,并获取到 cookie。

​ B. 攻击者事先知道该购物网站完成一次购物操作的URL,因此事先将脚本注入页面,例如:
<img src="http://www.example.shop/buy?productId=00010&count=10&address=example">

​ C. 在用户 A 没有登出购物网站(即cookie未失效)的情况下,访问了攻击者网站。此时攻击者网站会返回具有恶意脚本的页面,伪造用户发送请求到服务器。

​ 由此可知,攻击关键就是欺骗用户浏览器,让其以用户的名义发出请求,进行操作。

攻击演练

下面我会通过开启两个服务, http://localhost:3000/模拟购物网站,http://localhost:4000/模拟黑客网站

A. 模拟用户登录购物网站,获取 cookie 信息
CSRF-模拟用户登录

B. 模拟用户访问黑客网站,黑客网站中事先注入了攻击脚本:
CSRF-黑客网站

​ 刷新购物网站,发现被攻击了:
CSRF-被攻击现象查看

危害

利用用户登录态,用户不知情情况下进行操作:

  • 可盗取用户资金,进行转账消费等操作
  • 可冒充用户发帖、进行恶意言论等

防御措施

  • 设置 Referer 字段

    Referer 请求头标识当前请求是从哪个页面发送过来的,服务端可根据该地址判断出是否是恶意请求。

    局限性:完全依赖于浏览器发送正确的 Referer 字段,我们无法保证浏览器内部对 Referer 的实现。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值