嵌入式脚本的起源是什么?

smw*_*dia 4 security xss cors web

假设我将 B 站点的一段 JavaScript 嵌入到 A 站点的页面中。B 脚本的来源是否更改为 A?

\n\n

添加1

\n\n

直接引用一些官方文档:

\n\n

来自RFC 6454 - Web 起源概念

\n\n
\n

3.1 信任

\n\n

同源策略通过 URI 指定信任。例如,HTML \n 文档指定使用 URI 运行哪个脚本:

\n\n

<script> src="https://example.com/library.js"></script>

\n\n

当用户代理处理此元素时,用户代理将在指定的 URI 处获取脚本并使用文档的权限执行该脚本。通过这种方式,文档将其拥有的所有权限授予 URI 指定的资源。本质上,该文档声明它信任从该 URI 检索的信息的完整性

\n
\n\n

另一个例子也来自RFC 6454 - Web Origin Concept

\n\n
\n

例如,考虑 HTML 文档中的跨站点脚本。如果攻击者可以将脚本内容注入到 HTML 文档中,则这些脚本将以文档源的权限运行\xe2\x80\x99s,也许允许脚本访问敏感信息,例如\n用户\xe2\x80\x99的医疗记录。

\n
\n

小智 7

脚本使用它们嵌入的框架的原点运行,而不是加载它们的原点。如果您从另一个站点加载脚本,例如

<script src="http://example.com/example.js"></script>
Run Code Online (Sandbox Code Playgroud)

该脚本的行为与您从自己的站点加载它或将其内联嵌入的行为完全相同。它没有相对于加载它的站点的特殊权限。