JSON

JSONP注入实战

字号+ 作者:H5之家 来源:H5之家 2017-01-30 13:00 我要评论( )

JSONP注入是一个鲜为人知的但是非常广泛和危险的漏洞。它在近几年才出现,由于JSON,web API和跨域通信的急需。 什么是JSONP 假设每个人都知道JSON是什么,让我

JSONP注入是一个鲜为人知的但是非常广泛和危险的漏洞。它在近几年才出现,由于JSON,web API和跨域通信的急需。

什么是JSONP

假设每个人都知道JSON是什么,让我们谈谈一下JSONP。 JSONP来自带有填充的JSON,被创建来绕过常见的限制,例如同源策略。

举个例子。 我们的网上银行应用程序,,实现了一个返回当前用户的交易的API调用。
访问的HTTP请求向我们提供了当前用户的交易内容,JSON格式:

json-transactions

如果我们的报告应用程序,想访问获得交易详细信息,由于同源原则生效(不同的主机),将无法通过AJAX调用该页面。

sop-json

为了解决这个问题,JSONP发挥了作用。 由于跨域脚本包含(主要用于外部加载JavaScript库,如jQuery,AngularJS等)是允许但不推荐的,一个聪明的技巧显然解决了整个问题:在响应前加上回调。

注意:即使它可能是显而易见的,值得提及的是,当包括脚本跨域时,它将在包含应用程序的上下文中运行,而不是在源的上下文中运行。

添加一个回调到API响应,包裹JSON格式的数据,允许我们加载脚本标签之间的API响应,并通过定义我们自己的回调函数来处理它的内容。

怎么使用JSONP

这是你最容易遇到的情况:

  • 回调函数在响应中硬编码
  • 基本函数调用
  • 对象方法调用
  • 2.回调函数是动态的

    基本函数调用

    一个非常常见的示例,其中myCallback回调在响应中硬编码,包裹在JSON格式的数据上:

    callback-example

    我们可以通过首先定义myCallback函数,然后在脚本标签中引用API调用来轻松使用它:

    callback-example-code

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 观海卫blog,各种IT技术文档

      观海卫blog,各种IT技术文档

      2017-01-28 17:03

    • vue项目实战

      vue项目实战

      2017-01-27 12:01

    • Json和Jsonp理论实例代码详解

      Json和Jsonp理论实例代码详解

      2016-11-23 11:01

    • Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP

      Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. J

      2016-09-21 12:00

    网友点评
    "