![]() |
1
0
相对来说比较安全 如果 您实现了适当的沙箱。 你要避免的一件事是让用户代码在其他用户浏览器的顶层运行,因为如果你允许,其他用户在网站上的所有数据都可能被检索、记录和窃取。但是,如果您确保用户代码不是在顶层运行,而是在沙盒iframe(无法使顶部窗口运行任何内容的iframe)中运行,可能就没问题了。 看见 this question 对元堆栈溢出问题进行了类似的讨论。您提到的站点,以及其他实现来自用户的实时代码编辑器的站点,如Stack Overflow和JSFIDLE等,都使用这种在沙盒iframe中运行用户代码的技术,因此运行的代码无法到达顶层窗口,其数据必须保持安全。iframe还应该使用与父站点不同的源站(如果有的话)——现代浏览器自然对跨站点通信实施了相当严格的限制,正是出于这种原因(因此,来自一个源站的iframe对另一个源站的父窗口所做的作用很小,除非父窗口专门设置了这样的东西)。 我说沙盒iframe是 漂亮的 安全但不安全 绝对地 安全,因为 it's not impossible that something like Spectre 最终可能会在前端JavaScript中被利用,从而进行真正有成效的恶意操作。我认为它还没有在野外被看到过,而且可能永远不会,但这并非不可能。 |
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |