位置: IT常识 - 正文

Web系统常见安全漏洞介绍及解决方案-CSRF攻击(web系统的安全现状)

编辑:rootadmin
Web系统常见安全漏洞介绍及解决方案-CSRF攻击

推荐整理分享Web系统常见安全漏洞介绍及解决方案-CSRF攻击(web系统的安全现状),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:web系统常见安全问题包括,web系统的安全现状,常见的web安全及防护原理,web系统常见安全问题包括,web常见的安全问题,web常见的安全问题,web的安全,web系统的安全现状,内容如对您有帮助,希望把文章链接给更多的朋友!

🐳博客主页:拒绝冗余 – 生命不息,折腾不止 🌐订阅专栏:『Web安全』 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 👉关注✨、点赞👍、收藏📂、评论。

漏洞档案简介CSRF 攻击原理伪造GET/POST请求CSRF 蠕虫CSRF 防御1.验证码2.Referer Check3.使用token验证简介

CSRF跨站请求伪造,全称Cross-site request forgery,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。CSRF是Web安全中最容易被忽略的一种攻击方式,但某些时候却能产生强大的破坏性。

CSRF 攻击原理

1用户打开浏览器,访问登陆受信任的A网站

2在用户信息通过验证后,服务器会返回一个cookie给浏览器,用户登陆网站A成功,可以正常发送请求到网站A

3用户未退出网站A,在同一浏览器中,打开一个危险网站B

Web系统常见安全漏洞介绍及解决方案-CSRF攻击(web系统的安全现状)

4网站B收到用户请求后,返回一些恶意代码,并发出请求要求访问网站A

5浏览器收到这些恶意代码以后,在用户不知情的情况下,利用cookie信息,向网站A发送恶意请求,网站A会根据cookie信息以用户的权限去处理该请求,导致来自网站B的恶意代码被执行

伪造GET/POST请求

在CSRF攻击流行之初,曾经很多人认为CSRF只能由GET请求发起,因此很多开发者认为只要把重要的操作改成只允许POST请求就能防止CSRF攻击。 这种错误的观点形成的原因在于,大多数CSRF发起攻击时,使用的都是 //

在2007年Gmail CSRF漏洞攻击过程中安全研究者pdp展示了这个技巧: 首先用户需要登录Gmail账户以便获取Gmail的临时Cookie,然后攻击者诱使用户访问一个恶意页面,在这个恶意页面中隐藏了一个iframe,iframe的地址指向pdp写的一个恶意链接,这个链接的实际作用就是把参数生成一个POST表单并提交。pdp的攻击脚本会在邮箱的Filter中新建一条规则,把所有带附件的邮件都转发到攻击者指定的邮箱,由于浏览器中已经存在Gmail的临时Cookie,所以这个请求会成功。

CSRF 蠕虫

2008年9月百度曾经受到CSRF蠕虫病毒攻击,漏洞出现在百度用户中心的发送短消息功能中:

http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=用户账户&con=消息内容

这个链接只要修改参数sn即可对指定的用户发送短消息,而攻击者发现另一个接口能查询出某个用户的所有好友,将两者结合起来,可以组成一个CSRF Worm-让一个百度用户查看恶意页面后,将给他的所有好友发送一条短消息,然后这个短消息中又包含一张图片,其地址再次指向CSRF页面,使得这些好友再次将消息发给他们的好友,这个Worm因此得以传播。 这个蠕虫很好的展示了CSRF的破坏性-即使没有Xss漏洞,仅仅是CSRF也是能够发起大规模蠕虫攻击的

CSRF 防御

下面看看有什么方法可以防御这种攻击。

1.验证码

验证码被认为是对抗CSRF攻击最简洁而有效的防御方法。 CSRF攻击的过程,往往是在用户不知情的情况下构造了网络请求,而验证码强制用户必须与应用进行交互才能完成最终请求。但是很多时候,出于对用户体验考虑,网站不能给所有的操作都加上验证码,因此验证码只能作为防御CSRF的一种辅助手段,而不能作为最主要的解决方案。

2.Referer Check

Referer Check即通过验证 HTTP请求头中的Referer 字段检查请求是否来自合法的“源”,检查Referer是否合法来判断用户是否被CSRF攻击。HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。比如一个发博客的操作,正常情况下需要先登录到发博客页面,提交“发布”的表单时Referer的只必然是发博客表单所有的页面,如果Referer的值不是这个页面,甚至不是发博客的域,则很有可能受到CSRF攻击。 Referer Check的缺陷在于,服务器并非什么时候都能够取到Referer,很多用户(或浏览器)出于隐私保护的考虑,限制了Referer的发送。

3.使用token验证

CSRF为什么能攻击成功?其本质原因时重要操作的所有参数都是可以被攻击者猜测到的。现在业界对CSRF的防御,一致的做法就是增加一个参数–Token。Token必须足够随机(使用足够安全的随机数生成算法),它应该作为一个“秘密”存在于服务器和浏览器中,不被第三方知晓。由于Token的存在,攻击者无法再构造出一个完整的url实施攻击。实际应用时,Token可以放在用户的Session或者浏览器的Cookie中,在提交请求时,服务器只需验证表单中的Token与用户传过来的Token(Session或Cookie中)是否一致,如果一致则认为是合法请求;如果不一致,则认为请求不合法,可能发生了CSRF攻击。

本文链接地址:https://www.jiuchutong.com/zhishi/299717.html 转载请保留说明!

上一篇:【JavaScript】手撕前端面试题:事件委托 | 判断URL是否合法 | 全排列(javascript手机上)

下一篇:OpenCV实战——多尺度FAST特征检测(opencvcuda)

  • 微信营销的误区(微信营销的误区是什么)

    微信营销的误区(微信营销的误区是什么)

  • 荣耀magic3pro怎么截屏(荣耀magic3pro怎么取手机卡)

    荣耀magic3pro怎么截屏(荣耀magic3pro怎么取手机卡)

  • 华为手机阅读模式怎么关闭(华为手机阅读模式在哪里设置)

    华为手机阅读模式怎么关闭(华为手机阅读模式在哪里设置)

  • qq可以设置自动上下线时间吗(QQ可以设置自动下线吗)

    qq可以设置自动上下线时间吗(QQ可以设置自动下线吗)

  • 淘宝翻牌在哪里翻的(淘宝翻倍卡怎么使用)

    淘宝翻牌在哪里翻的(淘宝翻倍卡怎么使用)

  • ipad第六代可以用pencil吗(ipad第六代可以用电容笔吗)

    ipad第六代可以用pencil吗(ipad第六代可以用电容笔吗)

  • 小米10充电速度(小米10充电速度怎么样)

    小米10充电速度(小米10充电速度怎么样)

  • 小米新手机第一次充电需要注意什么(小米新手机第一次充电怎么充)

    小米新手机第一次充电需要注意什么(小米新手机第一次充电怎么充)

  • qq为什么看不到对方发的信息(qq为什么看不到别人动态里的评论了)

    qq为什么看不到对方发的信息(qq为什么看不到别人动态里的评论了)

  • 固态硬盘一定要4k对齐吗(固态硬盘一定要用对应型号的吗?)

    固态硬盘一定要4k对齐吗(固态硬盘一定要用对应型号的吗?)

  • 表格里面的字没有全部显示(表格里面的字没办法靠最左)

    表格里面的字没有全部显示(表格里面的字没办法靠最左)

  • 看别人qq空间如何让别人不知道(看别人qq空间如何让别人查不到)

    看别人qq空间如何让别人不知道(看别人qq空间如何让别人查不到)

  • 帧中继的使用链路层协议是(帧中继dte)

    帧中继的使用链路层协议是(帧中继dte)

  • 华为wasal00是什么型号的手机(华为wasal00是什么手机)

    华为wasal00是什么型号的手机(华为wasal00是什么手机)

  • word文档怎么取消修订(word文档怎么取消底色)

    word文档怎么取消修订(word文档怎么取消底色)

  • 淘宝号改性别能查出来吗(淘宝改性别多久生效啊)

    淘宝号改性别能查出来吗(淘宝改性别多久生效啊)

  • ps怎么p掉多余的东西(ps怎么p掉多余的头发)

    ps怎么p掉多余的东西(ps怎么p掉多余的头发)

  • 手机拍不了照片怎么办(手机拍不了照片怎么办相机不可以用)

    手机拍不了照片怎么办(手机拍不了照片怎么办相机不可以用)

  • bingo是什么牌子手机(bingo是什么牌子的手机什么意思)

    bingo是什么牌子手机(bingo是什么牌子的手机什么意思)

  • 安卓手机扩容有什么坏处(安卓手机扩容有什么好处)

    安卓手机扩容有什么坏处(安卓手机扩容有什么好处)

  • 微信如何提示红包来了(微信如何提示红包来了华为手机)

    微信如何提示红包来了(微信如何提示红包来了华为手机)

  • p30有红外线吗(p30手机有没有红外线功能)

    p30有红外线吗(p30手机有没有红外线功能)

  • 对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson(json对象和js对象)

    对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson(json对象和js对象)

  • Vue实现记住账号密码功能(vue注册用户名和密码)

    Vue实现记住账号密码功能(vue注册用户名和密码)

  • 初级职称经济法目录
  • 公司税务年报没报罚款多少
  • 固定资产处置收入怎么报税
  • 高速公路通行费发票可以抵扣增值税吗
  • 发票中奖要交税吗
  • 房屋租赁收入怎么做账
  • 价内税是指
  • 长期待摊费用可以转入费用或者成本吗
  • 小企业营业外支出
  • 合并报表时抵消内部交易包含的未实现损益的影响有哪些
  • 转让长期股权投资交什么税
  • 交易性金融资产的交易费用计入哪里
  • 收到费用怎么写分录
  • 营改增后的增值税税目税率表
  • 小规模纳税人亏损交所得税吗
  • 10万元以下免征教育费附加
  • 企业筹办期间发生的费用处理
  • 国税退税怎么做账
  • 牛奶的增值税普通发票
  • 天然气税费
  • 财产转移数据缴费怎么交
  • 招投标费用如何收取
  • 质量扣款入什么科目
  • 未到期的商业票据是什么
  • win7怎么输入命令
  • 净资产收益率公式推导
  • 工程施工科目借贷方向
  • 代缴个税的分录
  • 公司股东内部转让需要人脸识别吗
  • ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 1
  • PHP:iconv_set_encoding()的用法_iconv函数
  • 暂估入库的税务分录
  • 导航栏不变,切换怎么办
  • 应付债券的应付利息怎么计算
  • ubuntu busier
  • 工资一定要对公发吗
  • echarts series name
  • pytorch 例子
  • 深度强化学习-DQN算法原理与代码
  • 正则表达式除去指定字母
  • 其他收益在利润表填在哪里
  • 备抵法账务处理方式
  • 收入重复开票跨年了怎么处理
  • 出库单可以自制吗
  • 未确认融资费用摊销额怎么计算
  • 管理费用处理的是
  • 企业所得税的亏损弥补怎么算
  • 政府会计制度下基建账
  • 为什么合理损耗不计入成本
  • 应付职工薪酬会计凭证
  • 动漫产业增值税率是多少
  • 公司员工入职的心得体会
  • 房产税税率采用比例税率按照房产余值计征的年税率为
  • 增值税年末结转的会计处理
  • 酒店会计的账务处理
  • 银行承兑汇票提示付款期限
  • 股东分红按利润表的净利润计算
  • 旅游发票可以报销入什么明细
  • 年度损益调整的会计分录
  • 营业收入包括哪几项收入
  • 融资租入的设备怎么入账
  • 微软官方操作系统叫什么
  • Mac安装不了iTunes
  • 虚拟机怎么安装exe文件
  • 24个方法
  • macbookair登陆
  • 批处理执行bat文件
  • JavaScript不支持ie
  • jquery prompt
  • nodejs实战
  • 用python发邮件
  • Python装饰器入门学习教程(九步学习)
  • jquery属性选择器的基本
  • python获取数据代码
  • 广东税务APP实名可以注册两个吗?
  • 上海税务局实名认证流程
  • 北京大兴开发区房价
  • 河南省焦煤集团董事长
  • 四川地方税务局官网首页
  • 国家税务总局河南税务局官网查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设