Jsonp常见安全漏洞分析

本文详细解析了JSONP(JSON with Padding)跨域请求的工作原理、优势及常见漏洞,包括callback参数注入和资源访问授权设置,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSONPJSON with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域要资料。这个解释来自于互联网上面的答案。jsonp只是 一种使用json模式,之所以能够很广泛使用。主要用它来解决跨域访问问题。可以方便跨域名传输数据。一些是一个jsonp的例子。但是,正确的使用jsonp是至关重要的,用得不好。将带来重要资料把超范围访问,还会带来各自xss漏洞。

JSONP跨域请求例子

传统的ajax ,往往是 XMLHttpRequest ,读取一个接口,返回类似: {“Name”: “小明”, “Rank”: 7} json值。一般我们都采用xmlhttprequest方法通过状态判断执行请求是否完毕。

JSONP的使用模式里,该URL回传的是由自定义传入函数名,动态生成JSON作为该函数入参,这就是JSONP 的“填充(padding)”或是“前辍(prefix)”的由来。

请求:

<script type="text/javascript"
         src="http://www.example.com/RetrieveUser?UserId=1823&callback=parseResponse">
     </script>
返回:
parseResponse({"Name": "Cheeso", "Id" : 1823, "Rank": 7})
 
 
 

parseResponse是传入参数值决定的,这样好处通过script标签可以解决跨域问题,并且只要script src地址加载完,js解析引擎就开始执行src地址返回 js内容了。 我们使用者不用关心,什么时候src地址加载解析完。只用写好接收函数:parseResponse,到时候自动回执行该项目。比传统ajax确实多了很多方便!目前,象google翻译,地图等都用该方法。实现了跨域及异步调用!

JSONP漏洞将来自哪里?

它给我们带来的发布,是毫无疑问的。那么它将会有哪些漏洞呢?首先,我们知道,一切输入是有害的。传入callback 值会在结果里面直接返回。因此,如果该参数过滤不严格。可以随便输入:callback值为:alert(‘1’);parseResponse  字符串。返回结果会打印个alert窗口,然后也会正常执行。

那么另外我们知道,flash是可以跨域的。flash请求外部资源,现在都有个”crossdomain.xml”,可以授权允许那些来源的站点,访问指定站点的资源。其实目的就是为了防止,资源被越权调用了。 如果我们不对其授权,那么任何网站都可通过:创建script标记,读取我网站资源了!这个安全项,也就是是否有对访问来源进行了授权访问!

JSONP漏洞总结:

知道了JSONP漏洞点主要有:callback参数注入、资源访问授权设置!我们其实,可以通过这2项,来检测我们的做的JSONP项目,里面是否有安全隐患了。好了,今天先分析到这里。这些漏洞都是,技术实现型漏洞!只要,我们明白了方法,杜绝是很容易的。之所以会出现类似安全隐患,更多来自,不知道这里有类似安全问题!题外话、发发感慨!!现在网上看到很多教程,以及书籍都只会讲,怎么样使用某个功能,它的方法、技巧等等!很少解决,技术功能点安全避免漏洞的调用方法!做一个功能很重要,但是我始终认为,开发一个安全、稳定功能是最基础的前提。 如果做的功能不安全,稳定!它急着上线,只会带来更大的风险、或是损失!!!   欢迎大家交流,提出更换的建议!(”什么?这里不是说京东商城有JSONP漏洞吗?“  ”对!没错!” 今天我这里分析漏洞点,大家可以找找京东商城这方面使用漏洞,我们下次分享实例!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值