我真的无法完全理解相同来源域的含义。我知道这意味着从另一个域(例如JS文件)获取资源时,它将从为其提供服务的域的上下文中运行(例如Google Analytics(分析)代码),这意味着它无法修改数据或读取数据因此,如果域a.com在其源代码中嵌入了来自google.com的js文件,则该js将从google.com运行,并且无法访问DOM \ cookies \ a.com上的任何其他元素-对吗?

这里是我无法真正理解的同一来源策略的定义: -origin策略是在浏览器内部实现的一种关键机制,该机制旨在防止来自不同来源的内容相互干扰。基本上,从一个
网站收到的内容将被允许读取和修改从同一网站收到的其他内容,但不允许访问从其他
网站收到的内容。 />
这到底是什么意思?您能给我一个真实的例子吗?

另一个问题是:Origin标头的目的是什么,跨域请求仍然存在吗?为什么它不影响安全性或同一来源策略?

评论

在SO上类似:stackoverflow.com/questions/1830050/…,请求特定的简单示例:stackoverflow.com/questions/14667189/…

#1 楼

为什么相同的来源政策很重要?

假设您已登录Facebook并在另一个浏览器选项卡中访问了恶意网站。没有相同的原始策略,该网站上的JavaScript可能会对您的Facebook帐户做任何允许您做的事情。例如,阅读私人消息,发布状态更新,在输入密码后提交表单之前分析HTML DOM树。

但是,Facebook当然希望使用JavaScript来增强用户体验。因此,重要的是浏览器可以检测到该JavaScript受信任以访问Facebook资源。那就是相同的原始策略起作用的地方:如果JavaScript是来自facebook.com上HTML页面的内容,则它可能会访问facebook.com资源。很明显这是一个问题。

起源是什么?


我真的不能完全理解相同起源域的含义。我知道这意味着从另一个域(例如JS文件)获取资源时,它将从为其提供服务的域的上下文中运行(例如Google Analytics(分析)代码),这意味着它无法修改数据或读取数据


这是不正确的:JavaScript文件的来源是由包含它的HTML页面的域定义的。因此,如果您在Google Analytics(分析)代码中添加