同源策略
1 定义与原理
1.1 同源定义
相同来源:协议,主机,端口如果两个URL的协议,主机和端口相同,则认为两个URL被认为是相同的。
例子
正在加载...
example.cpm
正在加载...
example.com
正在加载...
example.com
正在加载...
other.com
1.2 同源策略
相同的原始策略是浏览器的安全函数。未经明确授权,来自不同来源的客户脚本无法读取和编写对方的资源。相同的原始策略限制了从一个源加载的文档或脚本如何与另一个来源的资源交互。这是隔离潜在恶意文件的重要安全机制。

1.3 跨域
简单地理解是访问可以使用HTML标签或JS访问的非同源资源。当js访问非same原始物体时,可以发送访问请求,但是在服务器将响应发送回响应后,我们客户端的浏览器默认情况下不接受它。1.4 同源策略限制
当非主体学时,JS将受到以下三个行为限制:cookie,localstorage和indexDB无法读取
无法获得DOM
AJAX请求发送,但浏览器不接受返回消息
相同的原始政策允许“跨域”写作,但不允许“跨域”阅读。写入意味着上行链路,发送请求,发送请求,读取为下行链路,接受响应并接收响应;
1.5 两种常用的跨域方式
1.5.1 JSONP
加载远程JS,您可以从远程JS中带来数据1.5.2 CORS
在提议求解跨域资源共享的HTTP标头中添加自定义字段的方法当浏览器提出请求时,将自动将原点字段添加到请求标题中。服务器验证原点字段以确定是否允许请求,从而实现了浏览器的交叉访问。
CORS 的安全问题当返回数据包标题中的访问对照- 允许散布是正确的时,这表明cookie可以包含在请求中并将其发送到服务器,这有安全问题。
如果访问控制- 允许原始标头是可控的,并且访问控制范围是正确的,则可以使用可控网站来窃取人的隐私信息
当主站通过CORS与子站点建立信任关系以进行资源共享,如果攻击者控制子站点,也可以获得主站的数据。

2 Cookie 与 DOM 中的同源策略
2.1 Cookie
在同一原始策略的限制下,非同源站点无法彼此读取cookie,并且此限制也存在于父/子域名中。
您可以看到两个站点上的cookie都不一样
但是,Cookie的相同原始策略是可以指定域以允许不同的站点相互访问。


设置域破坏了浏览器对cookie的同源限制。您可以从子站开始,并通过亚矿石获得亚地饼干。
信息
cookie的相同原始政策不能区分协议和端口
2.2 DOM 树
在同一原始政策的限制下,非同源地点无法彼此获得DOM。在这里,以在子域之间获得DOM的示例。

通过设置域,浏览器对DOM的同源限制被破坏了。您可以从子站点开始,然后修改主站点的DOM树。
3 CORS 与 CSRF
相同点:都需要依靠第三方网站所有人都需要使用Ajax异步过程
通常需要用户登录
不同点:第三方网站可以使用CORS漏洞来阅读受害者的敏感信息
第三方网站可以使用CSRF漏洞来提示受害者完成注射和转移的敏感操作。
通常,在具有CORS漏洞的地方存在CSRF漏洞。