Skip to content

同源策略(Same-Origin Policy)是浏览器的一种安全机制,用于限制一个文档或脚本如何能够与另一个源的资源进行交互。同源指的是协议、域名和端口号完全相同。这个策略有助于防止恶意网站通过脚本等手段访问用户在其他网站上的敏感数据。

同源策略的一些限制:

  1. JavaScript访问限制: 在默认情况下,使用JavaScript的XMLHttpRequestFetch APIAjax等方式发起的跨域请求将被阻止。

  2. Cookie、LocalStorage 和 IndexDB 限制: 页面中的脚本只能访问与页面来源相同的 Cookie、LocalStorage 和 IndexDB。这有助于防止恶意站点访问用户的敏感信息。

  3. DOM 限制: 不能通过脚本直接访问不同源的 DOM。

  4. Frame 和 iframe 限制: 不能通过脚本直接操作不同源的 Frame 和 iframe 中的内容。

为了允许跨域请求,可以使用以下方法:

  • CORS(跨域资源共享): 服务端配置响应头,允许指定来源的请求。

  • JSONP(JSON with Padding): 通过动态创建 script 标签,以回调函数的方式获取数据。

  • 代理: 将请求发送到同一域的后端,由后端再次发起跨域请求,然后将结果返回给前端。

同源策略是一项重要的安全措施,但在一些场景下可能需要进行跨域资源共享,开发者需要了解如何正确配置服务器以实现安全的跨域访问。