美文网首页
JSONP_跨域

JSONP_跨域

作者: 柚丶稚橙熟时 | 来源:发表于2017-07-17 21:49 被阅读0次

什么是同源策略

同源策略是浏览器的安全限制,即非同域的脚本无法互相获取资源。这是为了保护用户隐私,防止恶意行为。
两个URL同协议、同域名、同端口,则表示他们同源。
在非同源情况下:
Cookie,localStrage,IndexedDb
DOM 无法获取
Ajax请求无法发送

什么是跨域?跨域有几种实现形式

跨域:绕过浏览器的同源限制访问其他域名的资源
跨域实现形式:
JSONP
CORS
降域
postMassage

JSONP 的原理是什么

利用script标签可以跨域接受响应的原理。
需要服务端支持,服务端将数据用回调函数包裹起来,发送到页面作为js代码执行函数。
步骤:

  1. 定义数据处理函数_fun
  2. 创建script标签,src的地址执行后端接口,最后加个参数callback=_fun
  3. 服务端在收到请求后,解析参数,计算返还数据,输出 fun(data) 字符串。
  4. fun(data)会放到script标签做为js执行。此时会调用fun函数,将data做为参数。

缺点:
只能发起GET请求
比起AJAX,支持不够全面。无法通过注册一些事件监听函数进行其他处理。
需确定访问的异域服务器不会返回恶意的代码
需注意抵御CSRF漏洞:网站通过JSONP跨域传递用户认证后的敏感信息时,攻击者可以构造恶意的JSONP调用页面,诱导被攻击者访问,以达到截取用户敏感信息的目的。

CORS是什么

在CORS中的请求分为两种:简单请求和复杂请求
** 简单请求: **

  1. 只使用GET,HEAD或者POST。如果使用POST来发送数据到服务器,那么使用HTTP POST请求发送到服务器的数据的Content-Type为以下几种之一:application/x-www-form-urlencoded,multipart/form-data以及text/plain。
  2. 不使用HTTP请求发送定制请求头(例如X-Modified等)
    在简单请求下,我们只需设置Access-Control-Allow-Origin头部即可。

**复杂请求 **

  1. 使用了除GET,HEAD和POST以外的方法。如果使用POST方法发送请求数据时的Content-Type不是application/x-www-form-urlencoded,multipart/form-data或者text/plaint。例如,如果POST请求向服务器使用application/xml或者text/xml向服务器发送请求,那么这个请求就是preflighted的。
  2. 设置了定制请求头的请求(例如,请求使用了例如X-PINGOTHER这样的请求头)
    这类请求在发送正式请求之前会发送一个Preflighted(预请求),Preflighted请求首先通过HTTP OPTIONS方法请求其他域上的资源,以确定发送实际的请求是否安全。这样做,是因为跨站请求可能会对目的站点的数据造成破坏。我们第二次发的请求是一个复杂请求,服务端没有响应options的方法,导致预请求失败,之后的请求也就终止了。

参考:http://www.qdfuns.com/notes/16837/7f24c8d1eb39750897060f0b12fa3855.html

相关文章

  • JSONP_跨域

    1、同源策略 同源策略是众多的安全策略之一,是在web层面上的策略。同源策略规定:不同域的客户端脚本在没有明确授权...

  • JSONP_跨域

    题目1: 什么是同源策略 浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情...

  • JSONP_跨域

    题目1: 什么是同源策略 浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情...

  • JSONP_跨域

    1、什么是同源策略? 同源策略,即Same origin policy,它是所有支持JavaScript的浏览器都...

  • JSONP_跨域

    什么是同源策略 浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不能...

  • JSONP_跨域

    1. 什么是同源策略 浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下...

  • JSONP_跨域

    1: 什么是同源策略 同源策略(Same origin policy)是一种约定,是浏览器最核心也最基本的安全功能...

  • JSONP_跨域

    1. 什么是同源策略 同源策略(Same origin Policy):浏览器出于安全方面的考虑,只允许与本域下的...

  • JSONP_跨域

    1.什么是同源策略 同源策略(Same origin Policy):浏览器出于安全方面的考虑,只允许与本域下的接...

  • JSONP_跨域

    题目1: 什么是同源策略 浏览器出于安全考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,...

网友评论

      本文标题:JSONP_跨域

      本文链接:https://www.haomeiwen.com/subject/ldpxkxtx.html