CSRF原理及防范 -深圳网站优化推广公司
Vedu 技术资讯 阅读 1263

CSRF (Cross—Site Request Forgery),既跨站点请求伪造,也被叫做 XSRF,和 XSS 一样也是一种比较常见的 web 攻击。

SRF攻击者会过过构造的第三方面诱导受害者完成加载或者点击,利用受害者的权限,以其身份向合法网站发起恶意请求,通常用户发生状态改变的请求,比如虚拟货币的转账,账号信息修改,恶意发邮件等等,由于具有一定的隐蔽性,所以比较防范。

CSRF原理及防范

通过一个简单例子来演示 CSRF的攻击原理,正常网站A,攻击网站B,用户C,正常网站具有一个虚拟币转账的公功能,转账通过GET请求完成,且网站A不具备 CSRF 防范机制,攻击者利用这个漏洞恶意构造网站B,诱导用户C访问,达到恶意转账目的。

转账的GET请求如下:

GET http://normal-site.com/transfer.do?from=rommel&to=alice&amount=100 HTTP/1.1
这是我们出于演示方便使用GET请求来完成转账,实际应用远比这个列子要复杂,需要更加安全的机制,比如一次性 token,https 等,而且一般都是用POST请求。

这是我们出于演示方便使用GET请求来完成转账,实际应用远比这个列子要复杂,需要更加安全的机制,比如一次性 token,https 等,而且一般都是用POST请求。

CSRF 的攻击过程过程图上图所示:

  1. CSRF 攻击有一个前提条件,是用户具有某个正常访问的访问权限。一般网站的访问断线都具备一定的有效期,比如1天过期,或者几个小时骨气,再次期间权限信息会保留在用户浏览器的cookie中,这本例子中假设用户C刚刚登录了网站A,全新还没有过期。
  2. 攻击者利用正常网站A的CSFR漏洞,构造页面一个恶意网页B,在页面中包含对发往正常网站A的请求,在用户C加载页面B(或者点击某些元素时触发)时,会触发攻击请求,目的是为了实现虚拟币的转账,请求可能隐藏得很深,用户并不一定能发现,伪造的请求如下:
<img widht=0 height=0 src="http://normal-site.com/transfer.do?from=rommel&to=attacker&amount=100" />

于加载恶意页面B和触发攻击请求都是在用户浏览器端完成的,因为之前用户登录过正常网站,发往正常网站的请求会带有用户授权信息(在cookie中),在授权信息没有过期的情况达到攻击目的。

CSRF 的防范

目前主要有如下几种方式:

form>
<input name="from" value="rommel" />
<input name="to" value="" />
<input name="csrf_token" value="QMYjiBlZ9V9mGnap" />
form>
$.ajax({
headers: {
"X-CSRF-TOKEN": "QMYjiBlZ9V9mGnap"
}
});

另外,为了更可靠的安全性,token 在使用之后一般置为失效,避免被窃取。


问,www.a.com/test_samecookie.php 通过Chome 的开发者工具查看cookie信息,如下:

CSRF原理及防范

在 www.b.com/access_same_page_in_site.php 构造同样的页面访问 www.a.com 中的任何页面。

<a href="www.a.com/test.html">testa>

点击页面上的链接之后,会发现,只有 cookie2 传递到了www.a.com strict 模式限制所有的跨域cookie传输,lax 模式相当于在安全性和可用性之间做了个折中,某些场景允许跨域传输,比如 a 标签中中的GET请求,但会对 img、iframe 和 ajax 中的GET请求以及POST请求做限制,

目前只有 Chrome 和 Opera 浏览器支持 SameSite 属性。


输出内容为:

({"userid":"12345678","usernick":"coderxing"});

B 网站通过 JQuery 使用 jsonp 的代码如下:

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js">script>
<script type="text/javascript">
$.ajax({
url:"http://www.a.com/jsonp.php?callback=cb",
dataType:\'jsonp\',
jsonp:\'callback\',
success:function(result) {
console.log(result);
}
});
script>

通过Chrome浏览器访问:http://www.b.com/use_jsonp.html,控制台会输出:

CSRF原理及防范
<script type="text/javascript">
var url = "http://www.a.com/jsonp.php?callback=cb";
//创建 script 节点
var scriptNode = document.createElement(\'script\');
scriptNode.type = \'text/javascript\';
scriptNode.src = url;
//和好回调函数名称一致
var cb = function(data){
console.log(data);
}
//动态添加 script 节点
document.head.appendChild(scriptNode);
script>

动态添加 script 节点之后,会自动加载 jsonp 网络请求,由于回调函数的名称为为 cb,当加载成功之后会自动执行 cb(data); 函数,使用JSON数据。

上面的 PHP 服务端代码没有加任何JSON劫持的防范,任何域名都可以通过JSONP的方式进行访问,就像前面CSRF一节介绍的攻击方法一样,如果攻击者诱导受害者访问含有攻击代码的页面,就会获取到相关的JSON数据,达到劫持目的,如果是登录之后才可见的数据,就会暴露用户隐私。

JSON 劫持的方法其实和CSRF的防范方式是一脉相承的,解决方案如下

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/tech/12372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
0 0
springboot+jwt完成登录认证
上一篇 2020-10-13 08:22
基于prometheus+grafana的windows服务器监控界面,超级好看
下一篇 2020-10-14 08:11

相关推荐

发表评论

登录后才能评论

Debian单网卡绑定多IP地址

  • 限时免费 A.BIG.T网络工具

    限时免费 A.BIG.T网络工具

  • 网站内容更新怎样让百度快速收录

  • Linux Lite 5.6 RC1 发布,面向Windows用户的Linux发行版

    Linux Lite 5.6 RC1 发布,面向Windows用户的Linux发行版

  • 通过3个案例搞清楚什么是互联网营销思维

    通过3个案例搞清楚什么是互联网营销思维

  • 数据指标包含哪些内容?什么是好的数据指标?

    数据指标包含哪些内容?什么是好的数据指标?

  • Android uni-ap封装原生插件

    Android uni-ap封装原生插件

  • Vue-Vben-Admin:全新开源Vue3+Ts中大型Admin管理系统

    Vue-Vben-Admin:全新开源Vue3+Ts中大型Admin管理系统

  • 谷歌Chrome 69浏览器正式版发布 全新视觉UI、搜索/密码管理更强大

    谷歌Chrome 69浏览器正式版发布 全新视觉UI、搜索/密码管理更强大

  • 网站URL优化提高网站用户体验的基础

  • 相关内容推荐

    江汉网站制作分宜企业网站制作手机版单页网站制作java制作小网站高陵区网站制作哪家好如何用dw制作网站首页搭建制作网站的基本步骤莆田仙游高端网站制作制作网站毕业设计论文赣州网站制作软件咋么制作网站路虎网站制作美食手机制作网站视频的软件利用图片制作网站电视直播网站制作雪糕房山区制作网站定制推荐东莞公司网站制作教程制作自己的网站有关音乐的网站建设制作新兴互联厦门湖里网站制作公司烟台制作企业网站长沙网站制作效果阆中手机版网站制作永康网站制作企业成本如何做账桌面壁纸网站制作表格国外广告联盟 网站制作广东云浮专业制作网站中山网站制作 必找易维互联活动邀请函免费制作网站如何制作网站控制预算义乌制作一个网站要花多少费用苏有朋电影网站制作免费图片在线制作生成网站晋城网站前端制作厂家怎么在视频网站制作视频成都网站制作scgckj制作模型比较简单的网站单页网站制作 视频教程网站制作动态背景双流网站制作设计公司大兴网站建设制作公司自己制作视频的网站用html制作简单的网站淮北网站制作公司哪家比较好绍兴外贸网站制作有哪些制作网站搭钢管架怎么写南京企业网站制作外包报价单机游戏网站制作蛋糕制作商务网站需要几个人台州怎么制作扫码直接进网站虞城网站制作普陀网站制作有哪些578影视网站制作前端网站制作教程成都企业制作网站巴西电影网站制作怎么制作网站前端常用网站制作头像表白网站制作工具制作app软件的网站连云港企业网站制作重庆承越网站制作公司绍兴怎么在网站上制作命名锚记怎么制作一个web网站海北银川网站制作四川网站制作流程一般制作流程定制制作网站公司手机网站制作怎样收费绍兴英文网站制作强军纪录片网站制作写作素材网站制作汕头高端网站制作一九四二电影网站制作成都企业制作网站辽宁电子网站制作交易价格素描手工制作网站大全别墅网页设计制作网站模板摇头娃娃在线制作网站龙口网站建设制作网站制作图片怎么全屏傻瓜式网站模板制作淮南网站制作奶茶企业网站的制作原则情网站制作手工怪谈电影网站制作权威的网站制作欢迎你动态网站制作情侣网站制作贴纸韶关市行业网站制作价格凡科制作网站制作音乐网站音频问题剪纸头像制作网站在线繁体字网站制作表情包医院网站制作价格阿里云网站怎么制作网页新竹网站制作的网站江门网站制作方案四级模板网站制作编程猫官方制作网站wap网站制作哪个好潍坊网站制作设计无锡网站制作鲜米新互动网络股评网站制作自己怎样制作网站教学石原里美日剧网站制作象山微信推文制作网站有哪些深圳市专注网站制作公司微网站手机制作台州怎么制作扫码直接进网站局域网站制作街拍网站制作视频合肥电影网站开发制作广州中文网站建设制作网站制作工作加班吗网页设计与制作班级网站娄底营销型网站制作绍兴网站视频制作人证电影网站制作汉中企业网站制作上杭租房网站制作网站传资料的后台制作网站自动制作软件南园搜索引擎网站制作突泉网站制作如何制作网站的二维码小天使网站制作壁纸网站制作费作什么会计科目词源网站制作ppt制作视频直播网站系统天涯网站制作表格网站制作在哪办公深圳网站制作公司电话紫金网站制作江北制作网站多少钱网易印象派网站制作源码制作视频直播网站系统酉阳网站建设制作网站制作优化皆选金手指交互作品集网站制作宜君县网站制作电商网站制作手工冠县网站制作多少钱永州制作的网站张掖网站制作和推广编码怎么制作网站越南网站制作冰淇淋定制制作网站公司潍坊网站建设制作设计公司免费制作gif的网站有哪些网站捷径制作个性相册制作网站哪个好青海网站制作价格浙江网站制作贴纸南山区公司网站制作秋葵视频网站制作制作企业网站费用明细圆形在线制作网站虾米网站制作壁纸企业网站制作干花教程远程服务器制作网站h5网站制作公司推荐css3手机网站首页制作app网站制作流程博客网站制作公司专业的网站制作公司哪家好集团网站制作企业企业网站制作技术镇雄网站制作如何西安php网站制作哪家公司好绍兴网站主题制作前端框架技术制作专题网站学习无锡制作网站价格木工制作网站排行榜前十名网站制作ps——北流网站制作公司象山杭州制作网站公司有哪些巫溪电脑网站制作网站制作的四种原则罗湖外贸网站制作公司滨海网站建设制作企业班服logo在线制作网站赣州网站制作壁纸全屏我想制作一个空白网站网站制作怎么处理图片免费html网站制作成品app网站开发制作价格惠州网站制作哪家好薇中堂网站开发制作水印在线制作免费网站网站邀请函在线制作金华婚庆公司网站怎么制作制作词云的网站自己制作网站的手机app微网站制作正规公司营销型制作网站服务商制作一个网站简易报价网站制作奶茶昌邑网站制作免费软件成都电视台网站制作起泡如何制作统计数据网站

    合作伙伴

    深圳网站优化推广公司

    龙岗网络公司
    深圳网站优化
    龙岗网站建设
    坪山网站建设
    百度标王推广
    天下网标王
    SEO优化按天计费
    SEO按天计费系统