JS 可以像 SO 代码片段中的 iframe 一样隔离在影子 DOM 中吗?

问题描述 投票:0回答:1

SO 网站似乎使用 iframe 来运行代码片段。任何形式的 Web 组件都可以接受用户提供的 JavScript 并仅在影子 DOM 中独立运行吗?

我通过附加脚本标签尝试了简单的影子 DOM 和自定义元素示例,并且该脚本可以在这两个实例中更改影子 DOM 之外的 DOM。有没有办法隔离JS?

这个几乎十年前的答案说不,但想知道是否有什么变化。这个八年前的答案似乎暗示Web组件可以隔离JS,但它不是很清楚,至少对我来说不是。

也许,如果可能的话,SO 和 W3schools 会使用它们而不是 iframe。

谢谢你。

javascript web-component shadow-dom custom-element
1个回答
0
投票

不,shadow DOM 是一种不相关的隔离类型。即使无法以某种方式干扰页面上的其他脚本或访问 DOM 的其余部分,该脚本仍将在同一源上运行,因此对于不受信任的代码来说是完全不安全的 – 能够发出任意同源请求例如,带有凭据。

© www.soinside.com 2019 - 2024. All rights reserved.