首页 > 代码库 > 同源策略

同源策略

同源策略

1. 历史

1995 年由 Netscape 公司提出,之后被其他浏览器厂商采纳。

同源策略只是一个规范,并没有指定其具体的使用范围和实现方式,各个浏览器厂商都针对同源策略做了自己的实现。

一些 web 技术都默认采取了同源策略,这些技术范围包括但不限于Silverlight, Adobe Flash, Adobe Acrobat, Dom, XMLHttpRequest。

2. 定义

Under the policy, a web browser permits scripts contained in a first web page to access data in a second web page, 
but only if both web pages have the same origin. An origin is defined as a combination of URI scheme, hostname, and port number.

判断同源的三个要素:

  • 相同的协议

  • 相同的域名

  • 相同的端口号

3. 存在的意义

为了保证使用者信息的安全,防止恶意网站篡改用户数据

举个例子:

假设没有同源策略,那么我在A网站下的cookie就可以被任何一个网站拿到;那么这个网站的所有者,就可以使用我的cookie(也就是我的身份)在A网站下进行操作。

同源策略可以算是 web 前端安全的基石,如果缺少同源策略,浏览器也就没有了安全性可言。

4. 限制范围

非同源的网站之间

  • 无法共享 cookie, localStorage, indexDB

  • 无法操作彼此的 dom 元素

  • 无法发送 ajax 请求

  • 无法通过 flash 发送 http 请求

  • 其他

 

同源策略