同源策略
1 2 3 | 2015年5月21日22:37:17 喜欢看星星··· 以后肯定要买个天文望远镜(⊙o⊙)… |
1 2 3 4 | ↓First 对于客户端Web安全的学习与研究来说, 深入理解同源策略是非常重要的, 也是后续学习相关知识的基础.^_^ |
1 2 3 4 5 6 | 同源策略_Same origin policy ↓概念是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略, 则浏览器的正常功能可能都会受到影响。 可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。 它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。 |
1 | 同源→同协议,同域名和同端口. |
1 2 3 | ↓作用What? 它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,<br>而不是那些来自其它站点可能怀有恶意的资源。 浏览器的同源策略, 限制了来自不同源的“document”或脚本,对当前 "document" 读取或设置某些属性. |
1 2 3 4 5 6 | ↓为什么要同源限制What? 1→比如一个黑客程序,利用IFrame把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时, 他的页面就可以通过JavaScript读取到你的表单中input的内容,这样用户名,密码就轻松搞到手了. 2→可能a.html的一段JavaScript脚本,在b.com未曾加载此脚本时,也可以随意涂改b.com的页面(在浏览器的显示中)。 为了不让浏览器的页面行为发生混乱,浏览器提出了 "Origin" (源)这一概念,来自不同Origin的对象无法互相干扰. <br> |
1 2 3 4 | ↓影响 "源" 的因素有(http: //a.b.com/c.html) →host(域名或者IP地址,如果是IP地址则看做一个根域名),子域名 (hhtp: //aaaaa.b.com/c.html) →端口(http: //a.b.com:81/c.html) →协议(https: //a.b.com/c.html)<br>终极来说就是→必须是同一端口,同一host,同一协议...才会被认为是同源. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ↓JavaScript和XMLHttpRequest 在浏览器中,<script>,<img>,<iframe>,<frame>,<link>等标签都可以实现跨域加载资源, 而不受同源策略的限制.这些带 "src" 属性的标签每次加载时候,实际上是由浏览器发起了一次GET请求. 不同于XMLHttpRequest的是,通过src属性加载时,浏览器限制了JavaScript的权限,使其不能读、 写返回的内容.对于XMLHttpRequest来说,他是可以访问来自同源对象的内容. 也就是在普通的Javascript应用中,我们可以修改Frame的href,或者IFrame的src,以实现GET方式的跨域提交,但是却不能访问跨域的Frame/IFrame中的内容。 >>>>>>>>>> 如果我们又想利用XMLHTTP的无刷新异步交互能力,又不愿意公然突破Javascript的安全策略,可以选择的方案就是给XMLHTTP加上严格的同源限制。<br>这样的安全策略,很类似于Applet的安全策略。IFrame的限制还仅仅是不能访问跨域HTMLDOM中的数据,而XMLHTTP则根本上限制了跨域请求的提交。 ↓也就是 W3C委员会制定了XMLHttpRequest跨域访问标准.它需要通过目标域返回的HTTP头来授权是否允许跨域访问,<br>因为HTTP头对于JavaScript来说一般是无法控制的<br>,所以认为这个方案是可以实施的. Tips:这个跨域访问方案的安全基础就是信任 "JavaScript无法控制该HTTP头" ,如果此信任基础被打破, 则次方案也将不再安全. |
1 2 | 参考地址→http: //www.cnblogs.com/dsky/archive/2012/04/06/2434010.html 参考书籍→《白帽子讲Web安全》推荐大家看一下哈,不错滴··· |
1 2 3 4 5 6 7 8 | 本想再去维基百科上面捞点关于此话题的食材, 结果发现不知道怎么上不去了, 好吧,有时间了再完善下... >>>>>>>>>>>未完待续<br>←______________→ 晚安^_^ 2015年5月22日00:01:15 |
分类:
0110.系统安全.Web
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了