gpt4 book ai didi

javascript - 如何限制对javascript对象的访问?

转载 作者:行者123 更新时间:2023-11-29 15:51:07 24 4
gpt4 key购买 nike

我正在观看有关制作良好的 JavaScript 应用程序基础架构的视频。基本上它说的是:

  • 您的应用程序由组件组成
  • 组件是页面的一部分,可以独立运行。
  • 可以将组件注册到应用程序中。
  • 注册后,他们将获得自己的沙箱。
  • 沙箱是组件与应用程序核心的接口(interface)。
  • 核心构建在 javascript 库之上。
  • 组件只能访问它们的沙箱,不能访问其他组件,也不能访问核心或底层库。

现在,我想制作一个应用程序,您可以在其中轻松制作新组件。组件在页面上有自己的部分,它们可以在其中工作的 div。这是我的问题的第一部分:我想给这些组件一个 jQuery 对象的副本,但是它应用了一个内部限制,因此它只能在某个包含元素内工作。

第二部分是,即使组件使用 jquery 对 DOM 的访问受到限制,它仍然可以访问文档。在运行我的测试脚本之前,我尝试将 Window 和 Document 都设置为 null,但浏览器不允许这样做。有什么方法可以真正将对象的可能性限制为我传递给它的 1 个对象的方法吗?

最佳答案

你误解了这里的要点。目的不是“使组件 100% 不可能访问任何不应访问的内容”。做到这一点的唯一方法是 Facebook 采取的极其复杂的步骤,即解析 JS/HTML 代码并重写它以禁止某些引用等。我敢打赌他们的开发团队花了 1,000 多个小时才完成这样做,它仍然有漏洞。

基本上,目的是给每个组件一个沙箱来玩,然后说“请只使用这个”。作者随后遵从了请求。

您唯一的其他选择是 iFrame,在这种情况下,组件可以做任何它想做的事,并且不会产生任何影响(假设您在不同的子域中,并且您提供父窗口代理)。

关于javascript - 如何限制对javascript对象的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5569964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com