同源策略

HTML5 performance API 草案.

北慕城南 提交于 2020-04-06 07:10:00
支持浏览器 : IE9+,Chrome11+,Firefox7+. 宿主对象window.performance. 参考资料: http://msdn.microsoft.com/zh-cn/office/ff975118 参考w3c的标准草案: http://w3c-test.org/webperf/specs/NavigationTiming/ 目前,IE9+和 chrome11+,Firefox7+已经实现了该草案定义的接口. 成员 : .navigation (一个叫做performanceNavigation的对象.) .timing (这玩意是一个被称作performanceTiming的包含了很多成员的对象) 方法 : .toJSON 返回一个 对象,并抄写performance的可枚举成员到其中. 是的,timing,navigation都在上面. JSON.stringify(performance.toJSON()) == JSON.stringify(performance)//true. 悲剧啊.明明是继承来的,msdn非要特殊标一下.. PS: 1. performance,仅能对当前的html文档做检测,所有的对象都和当前文档有关. 如果我们想检测某个图片资源的网络状况,则不行. 比如我们想监控,用户访问我们服务的状况,就只能创建一个iframe,

浏览器的同源策略

风流意气都作罢 提交于 2020-03-31 14:34:45
  什么是同源策略?我们为什么需要同源策略?   我们先假设如果浏览器没有同源策略的情况,我们登陆了A银行的账号,如果这时我们打开了另一个网页(在另一个标签上)并且这个网页含有黑客设置的恶意js代码,在没有同源策略的情况下,黑客可以随意的读取你在A银行上的任何信息,做任何操作,我们个人隐私完全无法得到保障,所以同源策略是非常必要的。   同源策略:同协议,同域名,同端口。 不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。   下面给出相对 http://abc.jjp.com/app/page.html 的同源检测结果 url 结果 原因 http://abc.jjp.com/app/page2.html 成功 http://abc.jjp.com/source/page2.html 成功 https://abc.jjp.com/app/dist/page3.html 失败 协议不相同 http://efg.jjp.com/app/page2.html 失败 域名不相同 http://abc.jjp.com:8080/app/page2.html 失败 端口不相同      参考内容 https://www.jianshu.com/p/f4fc1ce49956 来源: https://www.cnblogs.com

关于跨域,你应该知道的

蓝咒 提交于 2020-03-23 17:19:39
首先得了解什么是跨域以及为什么会导致跨域? 跨域是由浏览器的同源策略造成的,是一种针对浏览器的安全限制,即不同源的页面之间不能相互访问。 同源策略是指请求双方的协议、域名、端口都要相同,有一个不同就会产生跨域。同时,跨域只针对请求方式为xhr类型的请求。 了解了跨域产生的根本原因我们才能给出针对性的解决方案 方案一: 既然跨域是由浏览器的同源策略造成的,所以我们可以选择取消浏览器的同源策略...方案虽然可行但不现实。 方案二: 也就是大家都知道的JSONP,JSONP的原理其实是通过改变请求方式为script实现的,但这种方案的一个很大缺点是只支持get请求。 方案三: CORS(跨域资源共享Cross-origin resource sharing),该方案需要在服务端响应头设置Access-Control-Allow-Origin属性值,当然也可以在服务容器tomcat或nginx配置文件进行设置。 这种方案应该是目前应用最多的。 方案四: 代理proxy,既然跨域是由浏览器的同源策略造成的,只要请求不是从浏览器发出的就不存在跨域问题了,所以客户端借助代理服务器和后台进行请求交互,然后再由代理把响应结果回传给客户端就OK。 以上只是针对跨域的简单说明,各种解决方案的具体应用可以自行了解~ 来源: https://www.cnblogs.com/fengyuexuan/p

前端实战------跨域问题

杀马特。学长 韩版系。学妹 提交于 2020-03-16 15:35:18
这两天遇到一个问题就是在首页点登录的时候用iframe框架弹出登录界面,输入用户密码点登录的时候发现不能关掉这个弹出界面(取消也不行),使用很多方法都不行,最后求助百度,终于让我找到了同源策略---跨域。下面稍微讲一下: 同源策略指的是:端口、协议、域名相同 同源策略是什么 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以baidu.com下的js脚本采用ajax读取sogou.com里面的文件数据是会被拒绝的。 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 另外,同源策略又分为以下两种: DOM 同源策略:禁止对不同源页面 DOM 进行操作。这里主要场景是 iframe 跨域的情况,不同域名的 iframe 是限制互相访问的。 XMLHttpRequest 同源策略:禁止使用 XHR 对象向不同源的服务器地址发起 HTTP 请求。 怎么解决我的这个问题 简单介绍一下情况,在A.html页面有一个iframe框架引用了B.html页面,我们现在呢需要点击B.html里面的按钮来关闭iframe或者登录后关闭;这里很多人会讲我引用同一个js,用里面的函数不行吗?这里我也试过,不知道是我没弄好还是怎么了,效果就是达不到,所以找到了同源策略来解决它。话不多说先上代码:

不要再问我跨域的问题了

↘锁芯ラ 提交于 2020-03-11 03:53:57
写下这篇文章后我想,要不以后就把这种基础的常见知识都归到这个“不要再问我XX的问题”,形成一系列内容,希望大家看完之后再有人问你这些问题,你心里会窃喜:“嘿嘿,是时候展现真正的技术了!” 一、 不要再问我this的指向问题了 跨域这两个字就像一块狗皮膏药一样黏在每一个前端开发者身上,无论你在工作上或者面试中无可避免会遇到这个问题。为了应付面试,我每次都随便背几个方案,也不知道为什么要这样干,反正面完就可以扔了,我想工作上也不会用到那么多乱七八糟的方案。到了真正工作,开发环境有webpack-dev-server搞定,上线了服务端的大佬们也会配好,配了什么我不管,反正不会跨域就是了。日子也就这么混过去了,终于有一天,我觉得不能再继续这样混下去了,我一定要彻底搞懂这个东西!于是就有了这篇文章。 要掌握跨域,首先要知道为什么会有跨域这个问题出现 确实,我们这种搬砖工人就是为了混口饭吃嘛,好好的调个接口告诉我跨域了,这种阻碍我们轻松搬砖的事情真恶心!为什么会跨域?是谁在搞事情?为了找到这个问题的始作俑者,请点击 浏览器的同源策略 。 这么官方的东西真难懂,没关系,至少你知道了,因为浏览器的同源策略导致了跨域,就是浏览器在搞事情。 所以,浏览器为什么要搞事情?就是不想给好日子我们过?对于这样的质问,浏览器甩锅道:“同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互

浏览器同源策略(跨域问题)

非 Y 不嫁゛ 提交于 2020-03-07 23:51:05
同源策略 浏览器同源策略的核心就在于它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源 同源指的是:协议、域名、端口号全部相同 下表给出了相对 http://store.company.com/dir/page.html 同源检测的示例: 同源策略又分为以下两种: DOM 同源策略:禁止对不同源页面 DOM 进行操作。这里主要场景是 iframe 跨域的情况,不同域名的 iframe 是限制互相访问的。(iframe是什么? 点我 ) XMLHttpRequest 同源策略:禁止使用 XHR 对象向不同源的服务器地址发起 HTTP 请求。 如果没有同源策略,将会怎么样呢?接下来举两个栗子来讲述同源策略的重要性: 如果没有 DOM 同源策略,也就是说不同域的 iframe 之间可以相互访问,那么黑客可以这样进行攻击: 做一个假网站,里面用 iframe 嵌套一个银行网站 http://mybank.com 。 把 iframe 宽高啥的调整到页面全部,这样用户进来除了域名,别的部分和银行的网站没有任何差别。 这时如果用户输入账号密码,我们的主网站可以跨域访问到 http://mybank.com 的 dom 节点,就可以拿到用户的账户密码了。 如果

疯狂的JSONP

亡梦爱人 提交于 2020-03-05 00:47:08
看了很多关于jsonp的,目前只看到此篇写的浅显易懂。引人入胜。 还有界面的布局也焕然一新,给人不同的感觉。 推荐下 ,转自 http://www.cnblogs.com/twobin/p/3395086.html#!comments 何为跨域?何为JSONP?JSONP技术能实现什么?是否有必要使用JSONP技术? 跨域 就是由于JavaScript同源策略的限制,使得a.com域名下的js无法操作b.com或c.a.com域名下的对象或数据。简单理解同一个域就是:相同域名、相同端口、相同协议! 同源策略 就是阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。即受到请求的URL的域必须与当前Web页面的域相同,意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。 “同源策略”的意义 “同源策略”有效地阻止了一些危险行为,如你同时打开多个网站时,其中有一个木马网站,那么木马网站就有可能窃取其他网站上关于你的信息或资料(因为多个网站间是可以相互通信的),给网上用户带来很大的泄密风险。正是由于有了“同源策略”,才大大降低了这种风险,由于木马网站与其他你浏览的网站不同源,因此无法相互间通信访问、获取数据等。 “同源策略”的不足 虽然“同源策略”在一定程度上保护了用户的网络安全,但如果有时就是需要让www.aaa.com取得www.bbb.com上的数据,同样是因为”同源策略

同源策略以及回调地狱和方法

狂风中的少年 提交于 2020-03-04 07:18:51
#同源策略 1 同源策略就是浏览器发送请求给的限制。 触发同源策略的条件:传输协议、域名、端口号,任意一个不一样搜会触发,对于触发同源策略的请求就叫做跨域请求。 2 跨域请求的三种方式 Jsonp跨域请求–src的引入 Cors跨域资源共享,由服务端进行配置,表示允许某一客户端的请求,客户端依旧使用ajax方式进行发送请求。 代理跨域:-浏览器不允许、非同源的请求。 (1)Jsonp中 ① script标签会把请求回来的所有内容当做js代码执行 ② Script标签默认有type属性,值是text/javascript,不管src请求什么文件,都会把文件里的内容当做字符串读取。 ③ Script标签放入src属性不受同源策略的影响。 ④ Jsonp.php中,只要有php标签对,就会按照php代码解析,没有php标签,就会按照字符串交给script标签。 (2)Cors跨越 Cors跨越是浏览器不让我们请求其他服务器,如果其他服务器告知浏览器可以请求,那么才不会阻止。 <?php // 以下三个可以实现cors的跨域请求,资源共享 header("Access-Control-Allow-Origin:*");//允许哪些域名请求 header("Access-Control-Request-Methods:GET, POST, PUT, DELETE, OPTIONS");/

白帽子讲web安全-学习笔记1

喜欢而已 提交于 2020-02-28 07:02:41
第一章 安全观 ACL 访问控制列表:是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的路由协议,如IP、IPX、AppleTalk等。 SQL注入,XSS跨站脚本攻击,CSRF跨站点请求伪造 破坏永远比建设容易 机密性 完整性 可用性 可审计 不可抵赖 第二章 客户端脚本安全 2.1同源策略 web构建在同源策略之上,浏览器只是对同源策略的一种实现。 浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或者设置某些属性。 对于当前页面来说,页面内存放javascript文件的域并不重要,重要的是 加载javascript的页面所在的域 是什么。 即b.js的源为加载了它的a.com而不是存放它的b.com。 在浏览器中,<script><img><iframe><link>等标签都可以跨域加载资源,而不受到同源策略的限制。这些带 src属性的标签每次加载时,实际上是由浏览器发起了一次GET请求 。 不同于XMLHttpRequest的是,通过src属性加载的资源,浏览器限制了Javascript的权限,使其不能读、写返回的内容。 来源: https://www.cnblogs.com/tutu-juejue/p/10479383.html

跨域访问资源

此生再无相见时 提交于 2020-02-25 14:40:26
文章目录 同源政策 Ajax请求限制 解决方法 使用JSONP解决同源限制问题 服务器端的解决方案 CORS 跨域资源共享 cookie 同源政策 同源的概念 :如果两个页面拥有相同的协议、域名和端口,那么这两个页面就属于同一个源,只要有一个不相同,就是不同源。 http://www.example.com/dir/page.html作比较(没写端口名就默认为80端口) http://www.example.com/dir/other.html (同源) http://example.com/dir/other.html (不同源,域名不同) http://www.example.com:81/dir/page.html (不同源,端口号不同) https://www.example.com/dir/page.html (不同源,协议不同) 同源政策 浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性。从一个域上加载的脚本不允许访问另外一个域的文档属性。 Ajax请求限制 Ajax只能向自己的服务器发送请求。若是向非同源的服务器发送请求将会被拒绝。 解决方法 使用JSONP解决同源限制问题 1.将不同源的服务端请求地址写在script标签的属性中 < script src = "www.example.com" > < /