浏览器同源策略为什么cdn资源可以正常访问?

文章类型:其他

发布者:hp

发布时间:2024-11-28

一:引言

在我们搭建项目时,浏览器出于安全考虑,规定两个不同源的页面互相之间不能请求数据,只有相同的源才能请求。但是当我们开发过程中,经常需要两个不同源的页面请求数据,所以就产生了跨域问题

二:定义

1:作用:是一种重要的安全机制,用于限制不同源的文档或脚本之间的交互操作

2:属性:“源”(origin)由三部分组成:协议(protocol)、域名(domain)和端口(port)


3:限制规则:

DOM层面:不同源站点之间不能相互访问和操作DOM

数据层面:不能获取不同源站点的Cookie、LocalStorage、indexDB等数据

网络层面:不能通过XMLHttpRequest向不同源站点发送请求

4:目的:是防止恶意网站窃取用户在其他网站上的敏感信息或进行未经授权的操作,保护用户数据的安全性和隐私性。


三:拓展

(一):为什么cdn能跨域请求到?

1:原因:

为了保证 Web 的开放性和可扩展性

2:适用标签:

在 HTML 中,<script>、<img>、<iframe>、<link>等标签的 src 属性所指向的资源(如 JavaScript 文件、图片、CSS 文件等)通常是可以跨域访问的,限制了读写返回内容的权限

3:提供商:

CDN 服务提供商通常也会采取一些措施来确保资源的安全性和合法性。会对资源进行管理和配置,只允许合法的请求访问资源,并防止恶意使用或滥用 CDN 资源

(二):img src 指向的任何资源都是可以跨域访问吗?

1:一般情况下,<img> 元素的 src 属性指向的资源是可以进行跨域访问的。

2:如果图片资源所在的服务器设置了严格的访问控制策略(例如通过服务器端的配置限制某些来源的访问)

3:对于一些受版权保护或有特殊访问权限要求的图片资源,

四:总结

1:同源策略是浏览器安全机制,保护用户数据的安全性和隐私性,

2:允许部分标签跨域是为了开放性和科扩展性