Jsonp 是什么

Fanly 问答 2019-06-10 10:52:52 阅读(...)

JSONP是数据格式JSON的一种“使用模式”,可以让网页从别的网域要数据,利用script元素开放策略,网页可以从其他来源动态产生的JSON数据,而这种使用模式就是所谓的 JSONP。

JSONP 是数据格式 JSON 的一种“使用模式”,可以让网页从别的网域要数据。另一个解决这个问题的新方法是跨来源资源共享。利用 script 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 数据,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的数据并不是 JSON,而是任意的 JavaScript,用 JavaScript 解释器运行而不是用 JSON 解析器解析。

Jsonp

为了要引导一个 JSONP 调用(或者说,使用这个模式),你需要一个 script 元素。因此,浏览器必须为每一个 JSONP 要求加(或是重用)一个新的、有所需 src 值的 script 元素到 HTML DOM 里—或者说是“注入”这个元素。浏览器运行该元素,抓取 src 里的 URL,并运行回传的 JavaScript。

也因为这样,JSONP 被称作是一种“让用户利用 script 元素注入的方式绕开同源策略”的方法。

安全问题

使用远程网站的 script 标签会让远程网站得以注入任何的内容至网站里。如果远程的网站有 JavaScript 注入漏洞,原来的网站也会受到影响。

现在有一个正在进行项目在定义所谓的 JSON-P 严格安全子集,使浏览器可以对 MIME 类别是“application/json-p”请求做强制处理。如果回应不能被解析为严格的 JSON-P,浏览器可以丢出一个错误或忽略整个回应。

跨站请求伪造

粗略的 JSONP 部署很容易受到跨站请求伪造(CSRF/XSRF)的攻击。因为 HTML script 标签在浏览器里不遵守同源策略,恶意网页可以要求并获取属于其他网站的 JSON 数据。当用户正登录那个其他网站时,上述状况使得该恶意网站得以在恶意网站的环境下操作该 JSON 数据,可能泄漏用户的密码或是其他敏感数据。

只有在该 JSON 数据含有不该泄漏给第三方的隐密数据,且服务器仅靠浏览器的同源策略阻挡不正常要求的时候这才会是问题。若服务器自己决定要求的专有性,并只在要求正常的情况下输出数据则没有问题。只靠 Cookie 并不够决定要求是合法的,这很容易受到跨站请求伪造攻击。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • PASSIVE KEYLESS ENTER 无钥匙进入系统

    汽车无钥匙进入系统是什么

    汽车无钥匙进入系统是采用了RFID无线射频技术和最先进的车辆身份编码识别系统,率先应用小型化、小功率射频天线的开发方案,并成功的融合了遥控系统和无钥匙系统,沿用了传统的整车电路保护,真正的实现双重射频系统,双重防盗保护,提供便利和安全。
  • UWB 超宽带技术

    UWB技术是什么

    UWB技术是超宽带技术,一种无线载波通信技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,占频谱范围很宽,有系统复杂度低,发射信号功率谱密度低,对信道衰落不敏感,截获能力低,定位精度高等优点,适用于密集多径场所的高速无线接入。
  • smartkey 智能钥匙

    smartkey是什么

    SmartKey就是智能钥匙,智能钥匙是新一代的RFID产品,是一种安全性非常高的非接触式的自动识别技术,关键技术是每一个系统只有一个唯一的,不可复制的识别码,是一种射频自动设别系统,常应用于汽车、门禁、监狱管理等系统。
  • Smart key 智能钥匙

    智能钥匙是什么

    智能钥匙是一种通过发射红外线信号来打开一个或两个车门、行李箱和油箱盖,也可以操控汽车的车窗和天窗的钥匙,智能钥匙从外观上看就像一张卡片,存放起来非常方便,特别是在夜间只要驾驶员触到车门智能钥匙就可开启车门,非常便捷。
  • Digital car key 数字车钥匙

    数字车钥匙是什么

    数字钥匙也被称为蓝牙钥匙或者虚拟钥匙,数字钥匙主要是利用近场通信技术,使得用户可以通过带有NFC功能的智能手机或可穿戴智能设备来进行车门的开锁闭锁,以及车辆的启动等操作,以及监控你的汽车开启次数,车的实时状态等发到你的手机上。
  • ETC

    ETC黑名单是什么意思

    ETC黑名单是指办理ETC卡车主因拖欠费用使得银行扣费失败、办理信息异常或用卡不当等原因,导致被高速公路管理方,列入黑名单处理,从而ETC卡无法正常使用,根据最高法相关规定,ETC黑名单严重者,会被纳入“失信被执行人名单”。