安全开发之CSRF(跨域请求伪造)

CSRF(跨站请求伪造)是一种攻击手段,黑客利用用户的登录状态发起伪造请求。防御措施包括:在session中放置token对比、添加验证码、验证Referer字段、配置cookie的Same-Site属性以及使用安全框架进行处理。
摘要由CSDN通过智能技术生成

概念: CSRF(Cross Site Request Forgery)跨域请求伪造,顾名思义,是在跨域的基础上利用伪造请求而达成的一种攻击手段。是恶意网站引诱顾客点击,或将恶意代码直接植入正常网站,伪造用户向正常网站的服务器发送伪造的请求。 也就是指黑客引诱用户打开黑客的网站,在黑客的网站中,利用用户的登录状态发起跨站请求

浅谈:由于请求是从用户的浏览器发出,便能自动带上用户的cookie发送到服务器。此时如果服务器未做针对跨域的配置,又或者图省事而允许了大部分的http方法跨域,那么此时服务器并不能识别这个请求是否是伪造的。此时服务器将会按照请求进行处理,那么就极有可能造成损失。

原理:
         1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; 
        2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A; 
        3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
客户端支持防止CSRF/XSRF(跨站请求伪造)的方法主要包括以下几种: 1. 验证码:在敏感操作如支付、修改密码等环节,向用户发送验证码,要求用户输入正确的验证码后才允许进行操作。这样可以有效防止CSRF攻击,因为攻击者无法获取有效的验证码。 2. Token验证:在用户登录时生成一个随机的Token,并将其储存在Session或Cookie中,每次向服务器发起请求时都需要将该Token一同发送。服务器接收到请求后校验Token的合法性,如果无效则拒绝该请求。这可以防止CSRF攻击者盗用用户身份发起恶意请求。 3. Referer检查:在HTTP头部中包含Referer字段,用于表示请求来源。服务器可以根据Referer字段的值判断请求是否来自合法来源,如果不是则拒绝请求。但需要注意的是,Referer字段不是必须的,而且可能被篡改,因此这种方法并不是绝对可靠。 4. SameSite Cookie属性:使用SameSite属性可以限制Cookie的发送,使其只在同一站点下请求时才被发送。这样可以防止跨域请求中Cookie的被盗用。但需要注意的是,SameSite属性支持程度不同浏览器有所差异,不同浏览器可能需要额外的配置或使用其他方法来提供更好的保护。 总体而言,以上几种方法并非绝对安全,各自有一定的局限性。因此,最好的防范方法是综合使用多种防护措施,加强客户端和服务端的安全防护。此外,开发人员还应持续关注最新的安全技术和漏洞情报,及时更新和修复系统,确保用户数据的安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值