CORS漏洞和 JSONP漏洞

CORS资源共享 (只做资源共享 与csrf不同)

CORS(Cross-Origin Resource Sharing)跨源资源共享,是HTML5的一个新特性,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,它允许浏览器向跨域服务器发出XMLHttpRequest请求,从而克服AJAX只能同源使用的限制。

CORS的基本原理是,第三方网站服务器生成访问控制策略,指定用户浏览器放宽 SOP 的限制,实现与指定的目标网站共享数据

用户A在登录自己后台或什么页面,这个时候访问了第三方的页面,第三方页面去请求这个后台或页面的内容,用户A访问了页面即将页面的内容泄露了

Access-Control-Allow-Origin        必填        允许请求的域

Access-Control-Allow-Methods        必填        允许请求的方法

Access-Control-Allow-Headers        可选        预检请求后,告知发送请求需要有的头部

Access-Control-Allow-Credentials        可选        表示是否允许发送cookie,默认false;

Access-Control-Max-Age        可选        本次预检的有效期,单位:秒;

Json hijacking漏洞:

在菜鸟教程中是这样说的,JSONP(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

为什么我们从不同的域(网站)访问数据需要一个特殊的技术( JSONP )呢?这是因为同源策略。

同源策略,它是由 Netscape 提出的一个著名的安全策略,现在所有支持 JavaScript 的浏览器都会使用这个策略,所谓同源是指,域名,协议,端口相同。

原理

大家应该知道,<img>的src(获取图片),<link>的href(获取css),<script>的src(获取javascript)这三个标签都不符合同源策略,它们可以跨域获取数据。JSONP就是通过动态创建<script>标签,指向一个需要访问的地址,利用<script>的src 不受同源策略约束,提供一个回调函数来接收数据来跨域获取数据的

cors漏洞与Json hijacking(jsonp)漏洞对比

1.jsonp是浏览器默认支持的跨域方式,cors是W3C提供的一个跨域标准。

2.jsonp只支持GET方式的跨域,CORS支持GET和POST等其他在服务器配置中允许的方式进行跨域

3.jsonp几乎支持所有的服务器(因为所有浏览器都支持"<script>"标签发生请求),而Cors不支持ie10一下的浏览器

4.jsonp支持的跨域资源需要满足JAVAscript代码规范,而cors跨域加载资源可以是HTML,XML等多种格式

如何防御CORS漏洞

1仅为需要跨域加载的页面开启cors功能

2在开启后尽量使用域名清单,避免用”*“等通配符向所有域名开放

如何防御JSONS漏洞

1对请求的来源镜像检测,包括Referer,Orign等参数,匹配是否来自合法或可信任的域名

2尽量避免在JSONP接口输入用户敏感信息

3将必须要通过跨域读取的内容封装为JSON格式并通过Access-Control-Allow-Origin限制跨域访问的源域名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值