xiaoyh 的个人博客

一个只会敲代码的咸鱼

0%

面试 —— 跨域

浏览器的同源策略

同源策略是一个重要的安全策略,它限制了从同一个源加载的文档或者脚本如何与另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要安全机制。

如果两个 URL 的 protocol、port (如果有指定的话)和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。

没有同源策略限制的两大危险场景

没有同源策略限制的接口请求

当用户登录某知名网站 A 成功后会获取到 cookie,且 cookie 往往会在浏览器中存在很长的一段时间。

黑客诱导用户访问自己的网站,并在自己的网站中藏有对网站 A 的恶意请求脚本(比如转账),由于每次浏览器发起请求都会带着 cookie,所以相当于黑客登录了你的账号。这种攻击方式也叫做 CSRF 攻击。

没有同源策略限制的 Dom 查询

黑客在自己网站中嵌入(通过 iframe 等标签)网站 A 的敏感页面(如登录页面)伪装成网站 A,诱导用户登录自己的钓鱼网站并输入用户名和密码。

其实同源策略对于这一点的影响不大,因为即使不嵌入,也可以仿造网站 A 的敏感页面直接写一个网站出来。

待更新