同源策略
一个域名地址由协议、域名、端口、请求资源地址等部分组成。
如果两个 URL 的 协议、域名 和 端口 都相同,我们就称这两个 URL 同源。
同源策略(same-origin policy)是一种出于浏览器安全方面的考虑而出台的一种策略,它可以保护用户信息的安全,防止恶意的网站窃取、身份伪造等。同源策略只允许与本域下的接口交互,不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。
注意:很多人以为同源策略是浏览器不让请求发出去、或者后端拒绝返回数据。实际情况是,请求能正常发出,后端接口正常响应,只是数据到了浏览器后被丢弃了。
受同源策略限制的方面:
1)DOM节点,限制不同源JS脚本对当前DOM对象的读写操作;
2)数据层面,限制不同源站点读取当前站点 Cookie、IndexDB、LocalStorage等数据。
3)网络层面,限制通过 XMLHttpRequest 等方式将站点的数据发送给不同源的站点(即AJAX的跨域问题)。