浏览器中的跨域资源请求

浏览器中的跨域资源请求

同源策略-是针对浏览器所设计的一项安全规定,页面中所渲染的资源(JavaScript脚本除外)都需要符合同源策略才能够正常访问。

在构建 Web 项目或者进行 XSS 攻击时,常常需要进行跨域资源访问。设想这样一个场景:攻击者 Attacker 在网站 A 上注入了一段恶意 JS 代码,用来盗取访问者的浏览器、Cookie、IP 等信息,并通过 ajax 请求将这些信息以参数的形式(GET、POST 皆可)发送至攻击者事先准备好的服务站 B 上。若按同源策略规定,在网站 A 上不能直接请求或者发送数据至网站 B,那么这里就要用到一些跨域资源请求的方法。

通过总结已公开的跨域方法并结合自己的理解和实践,将几种跨域资源请求的方法通过实例 Demo 的形式详细记录如下。

网站 A 要获取网站 B 上的资源内容,跨域方法分为 网站 B 可控 和 网站 B 不可控 两类(可控指能更改 Web 服务器设置或者页面内容)。

网站 B 可控的跨域方法:

  1. 同主域名下iframe控制document.domain进行跨域
  2. iframe集合location.hash进行跨域数据获取
  3. 通过iframe.name跨域传递数据
  4. 将数据通过 JS 进行直接加载
  5. html5中的postMessage
  6. 利用 CORS 进行跨域

网站 B 不可控的跨域方法:

  1. 代理服务(Proxy)

源地址:http://rickgray.me/2015/09/03/solutions-to-cross-domain-in-browser.html

 

 

 

 

 

 

 

浏览器中的跨域资源请求

同源策略-是针对浏览器所设计的一项安全规定,页面中所渲染的资源(JavaScript脚本除外)都需要符合同源策略才能够正常访问。

在构建 Web 项目或者进行 XSS 攻击时,常常需要进行跨域资源访问。设想这样一个场景:攻击者 Attacker 在网站 A 上注入了一段恶意 JS 代码,用来盗取访问者的浏览器、Cookie、IP 等信息,并通过 ajax 请求将这些信息以参数的形式(GET、POST 皆可)发送至攻击者事先准备好的服务站 B 上。若按同源策略规定,在网站 A 上不能直接请求或者发送数据至网站 B,那么这里就要用到一些跨域资源请求的方法。

通过总结已公开的跨域方法并结合自己的理解和实践,将几种跨域资源请求的方法通过实例 Demo 的形式详细记录如下。

网站 A 要获取网站 B 上的资源内容,跨域方法分为 网站 B 可控 和 网站 B 不可控 两类(可控指能更改 Web 服务器设置或者页面内容)。

网站 B 可控的跨域方法:

  1. 同主域名下iframe控制document.domain进行跨域
  2. iframe集合location.hash进行跨域数据获取
  3. 通过iframe.name跨域传递数据
  4. 将数据通过 JS 进行直接加载
  5. html5中的postMessage
  6. 利用 CORS 进行跨域

网站 B 不可控的跨域方法:

  1. 代理服务(Proxy)
posted @ 2017-02-21 11:07  Mdreame  阅读(190)  评论(0编辑  收藏  举报