同源策略:由Netscape提出的一个著名的安全策略,是浏览器的行为。
为保护本地数据不被JavaScript代码获取回来的数据污染,拦截客户端发出请求回来的数据接收
不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源
同源策略的限制范围
- cookie、localstorage、indexdb无法读取。
- DOM无法获取。
- ajax请求不能发送
不受同源策略影响的情况
页面中的链接,重定向以及表单提交是不会受到同源策略限制的(未授权情况下,ajax 的表单提交是不被允许的,但是普通的表单是可以直接跨域的)。
<script>、<img>、<link>这些包含 src 属性的标签可以加载跨域资源。但浏览器限制了JavaScript的权限使其不能读、写加载的内容。
同源策略的目的:
-
防止信息泄露: 同源策略阻止恶意网站通过跨域请求获取用户在其他站点上的敏感信息。例如,禁止一个网页中的脚本访问另一个不同域的网页中的数据,包括读取、修改或删除它们。
-
防止跨站脚本攻击(XSS): 同源策略可以防止恶意脚本通过跨域操作注入并执行恶意代码。如果不受同源策略的限制,攻击者可以在一个受信任的网站上注入恶意脚本,从而获取用户的敏感信息、篡改页面内容或进行其他恶意行为。
-
防止跨站请求伪造攻击(CSRF): 同源策略还可以防止跨站请求伪造攻击,即攻击者利用用户在某一网站的身份凭证发送伪造请求到其他站点,实施未经授权的操作。同源策略通过限制跨域请求,使得只有相同源的请求能够携带浏览器生成的身份凭证(如 Cookie),从而有效地阻止了 CSRF 攻击。
-
维护网页安全性和稳定性: 同源策略有助于保持网页的安全性和稳定性。不同源的代码之间可能存在冲突或安全风险,通过限制跨域操作,可以减少潜在的漏洞和攻击面。
同源策略的目标是确保用户的数据安全和隐私保护,防止恶意行为对用户信息和系统造成损害。
参考文献:
https://www.jb51.net/javascript/288449bkv.htm
https://blog.csdn.net/qq_41020757/article/details/118681376
https://blog.csdn.net/qq_39465116/article/details/125900535
网友评论