zoukankan      html  css  js  c++  java
  • 浏览器中的跨域资源请求

    浏览器中的跨域资源请求

    同源策略-是针对浏览器所设计的一项安全规定,页面中所渲染的资源(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)
  • 相关阅读:
    DOM
    ES6的export和import
    JavaScript:Location
    垃圾回收机制之一:标记删除算法
    KnockoutJS:
    package.json
    2016/7/27
    requirejs:研究笔记
    postmessage/cors跨域postMessage、xhr2和xmldomain
    javascript:算法之数组sort排序
  • 原文地址:https://www.cnblogs.com/junglexj/p/6423128.html
Copyright © 2011-2022 走看看