浏览器同源策略

浏览器的同源策略(Same-Origin Policy,SOP)是一种重要的安全策略,用于限制一个源(origin)中加载的文档或脚本如何与另一个源的资源进行交互。它是一个关键的安全机制,用于防止恶意网站读取或修改另一个网站的数据而不被用户授权。

一个源的定义包括三个部分:协议(protocol)、域名(domain),和端口(port)。只有当这三者全部匹配时,两个URL才属于同一个源。例如,http://example.com/page1http://example.com/page2 属于同一个源,因为它们的协议、域名和端口都相同。但是,http://example.comhttps://example.com 就不属于同一个源,因为它们的协议不同。

同源策略限制了以下几种行为:

  1. Cookie、LocalStorage 和 IndexDB 的访问:网站不能访问不同源的数据存储。
  2. DOM 节点:一个源中的脚本不能访问另一个源的文档内容。
  3. AJAX 请求:通过 XMLHttpRequest 或 Fetch 发起的跨源 HTTP 请求会受到限制。

尽管同源策略限制了跨源访问,但现代Web开发中经常需要跨域资源共享(CORS,Cross-Origin Resource Sharing)。CORS 是一种机制,它允许网页的脚本能够向不同源的服务器发出请求,前提是服务器在响应中包含了适当的 CORS 头信息,表明它允许来自请求源的访问。

例如,如果一个网页尝试通过 AJAX 请求访问另一个域名下的API,那么API服务器需要在响应头中包含如下字段之一,以允许跨源请求:

1
Access-Control-Allow-Origin: *

或者指定允许的源:

1
Access-Control-Allow-Origin: http://example.com

同源策略是Web安全的基石之一,它帮助保护用户信息免受跨站点脚本攻击(XSS)和其他类型的网络攻击。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 buynonsense
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信