XSS前置课程--同源策略

什么是同源策略:

  在用户浏览互联网中的网页的过程中,身份和权限的思想是贯穿始终的

  同源策略(Same-Origin Policy),就是为了保证互联网之中,各类资源的安全性而诞生的产物,它实际上是一个众多浏览器厂商共同遵守的约定。同源策略是浏览器中基本的安全功能,缺少同源策略,很多浏览器的常规功能都会受到影响,可以说WEB是构建在同源策略基础之上的。

  如果WEB世界没有同源策略,当你登录FreeBuf账号并打开另一个站点时,这个站点上的JavaScript可以跨越读取你的FreeBuf账号数据,这样整个WEB世界就无隐私可言了。

  情景设想:

    将一个学校内的学生看作不同源的个体。虽然一个班级里面有许多学生,但是他们都是互不相关的个体。学生家长请求老师提供同学们的学习成绩报告,老师会告诉家长,你只能够查看自己孩子的学习成绩报告。

    同理,学校收到请求要对一个学生的学习成绩进行评价,那么在出具评价报告之前,学校需要对请求者的身份进行确认。

    这就是与浏览器密切相关的同源策略

    继续假设,学校允许任何人不经过身份确认查看学生的学习成绩报告,这就和浏览器没有同源策略一样

    同源策略机制为现代广泛依赖与cookie维护用户会话的WEB浏览器定义了特殊的功能,严格隔离不相关的网站提供的内容,防止客户端数据机密性或完整性丢失。

同源策略的重要性:

  浏览器的同源策略,限制了不同源的“document”或是脚本,对当前“document”或资源及其属性的读写权限。

  源,即Origin,同源策略保护了a.com域名下的资源不被来自其他Origin的脚本读取或篡改。

  同源策略是一种安全思想,但并不是统一的规范体系。

JavaScript中的同源策略:

  JavaScript中的同源策略,需要对比两者中的域名/host、端口、协议。三者完全相同才可以认为是同源的

  

  确定JS脚本的源,取决于加载该JS文件的位置,而非JS文件存放的位置

  <script src="http://lab.b.com/scripts/jquery.js" type=“text/javascript"></script> 可成功加载

  在HTML语言中,有部分标签在引用第三方资源时,不受同源策略的限制

    例如:<script> <img> <iframe> <link> ......

  带src属性的标签,在加载时,实际是生成一条GET请求,向指定服务器申请资源。不同于XML Http Request,浏览器限制了script对src属性加载的资源内容的读写权限

  受同源策略影响

  ajax请求需要被请求的页面允许跨域请求才行,iframe,window.open加载的页面要相互操作受到同源策略的影响。

  XML Http Request在工作中受到同源策略的限制,不能跨域访问资源,现在可以通过设置HTTP Header:Access-Control-Allow-Origin来实现XML Http Request的跨域访问

  

  在浏览器中,Script、cookie、XML Http Request受到同源策略的限制之外,在浏览器加载的第三方插件出于安全性的考虑,也同样发展处各自的同源控制策略

    例如:Flash文件被加载后,若访问某域a.com名下的资源时,会先访问域下面的http://a.com/crossdomain.xml文件,查询是否允许flash所在的域进行访问

    crossdomain.xml文件的基本格式如下:

      <cross-domain-policy>

      <allow-access-from domain="*.secevery.com" />
      <allow-access-from domain="*.secevery.cn" />
      </cross-domain-policy>

XSS还需要了解:

  W3C的世界法则

  URL的本质

  HTTP协议

  HTML

  DOM

  JavaScript

  AJAX

    AJAX = 异步 JavaScript 和 XML

    AJAX是一种用于创建快速动态网页的技术

    通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新

    例如:新浪微博、Google地图等

  cookie

  CSS

  ActionScript

时间: 2024-10-21 13:03:39

XSS前置课程--同源策略的相关文章

xss利用——BeEF#stage3(绕过同源策略与浏览器代理)

??绕过同源策略 正式进入攻击阶段.因为SOP(同源策略)的存在,BeEF只能对被勾子钩住的页面所在域进行操作.如果有办法绕过SOP,那么无疑会使攻击面放大. 绕过SOP可从两方面入手.第一个是从浏览器本身和插件的漏洞入手,一些旧版的浏览器曾被发现有绕过SOP的漏洞,旧版的插件也有类似的情况(JAVA,Adobe Flash等).由于笔者自身能力限制,无法介绍这一方面的相关内容,读者可以自行查阅相关信息.第二个是Web的开发者错误的设置导致,下面介绍这一方面. SOP与DOM[表单访问] js或

JS同源策略和跨域访问

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现. 1. 什么是同源策略 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略. 何谓同源: URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源. 同源策略: 浏览器的同源策略,限制了来自不同源的"doc

同源策略和跨域访问

1. 什么是同源策略 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略.     何谓同源:         URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源.     同源策略:         浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性. (白帽子讲web安全[1])         从一个域上加载的脚本不允许访问另外一

同源策略——浏览器安全卫士

对于软件开发人员来说,理解同源策略.能够非常好地攻克了一个痛点. 不同域名下的资源读写 ! 古代的楚河汉界明白地规定了两方的活动界限.假设没有这些界限,天下必将大乱.相同,在我们的浏览器,也有着一些界限和策略,才让 Web 世界之所以能如此美好地呈如今我们面前.这些安全策略有效地保障了用户计算机的本地安全与Web安全. 同源策略 浏览器有一个非常重要的概念--同源策略(Same-Origin Policy).所谓同源是指,域名,协议.port同样.不同源的client脚(javascript.A

同源策略与跨域访问

1. 什么是同源策略 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略.    何谓同源:        URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源.    同源策略:        浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性. (白帽子讲web安全[1])        从一个域上加载的脚本不允许访问另外一个域的文档

对于浏览器的同源策略你是怎样理解的呢?

作者:王泥煤链接:https://www.zhihu.com/question/25427931/answer/30848852来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.什么是同源策略同domain(或ip),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源.这种安全限制称为同源策略. 2.为什么说同源策略限制了人类文明的发展安全性和方便性是成反比的,十位数的密码提高了安全性,

同源策略——浏览器的安全卫士

对于软件开发者来说,理解同源策略,可以很好地解决了一个痛点, 不同域名下的资源读写 ! 古代的楚河汉界明确地规定了双方的活动界限,如果没有这些界限,天下必将大乱.同样,在我们的浏览器,也有着一些界限和策略,才让 Web 世界之所以能如此美好地呈现在我们面前,这些安全策略有效地保障了用户计算机的本地安全与Web安全. 同源策略 浏览器有一个很重要的概念--同源策略(Same-Origin Policy).所谓同源是指,域名,协议,端口相同.不同源的客户端脚(javascript.ActionScr

同源策略和跨域问题

1 同源策略 所谓同源策略,指的是浏览器对不同源的脚本或者文本的访问方式进行的限制.比如源a的js不能读取或设置引入的源b的元素属性. 那么先定义下什么是同源,所谓同源,就是指两个页面具有相同的协议,主机(也常说域名),端口,三个要素缺一不可. 可以看下面的几个示例来更加清楚的了解一下同源的概念: URL1 URL2 说明 是否允许通信 http://www.foo.com/js/a.js http://www.foo.com/js/b.js 协议.域名.端口都相同 允许 http://www.

跨域访问和同源策略

因为在同一个浏览器窗口中能够同时打开多个网站的页面,而且它们都处于同一个会话中,如果不禁止跨域访问则会造成用户隐私数据泄露和登录身份冒用的问题,所以浏览器会使用同源策略限制跨域访问. 在浏览器中,通过JS代码访问不同域名下的URL或者iframe时,会被禁止访问.而不是通过JS代码进行的跨域访问不存在跨域问题!比如跨域加载图片,引用JS文件,下载各种文件,使用iframe跨域嵌入其他网站的页面都是可以的. 跨域访问被禁止有时会给应用开发带来阻碍,但在符合特定条件时也有相应的方法在保证安全的情况下