Web Workers 是沙箱不受信任的 JavaScript 代码的安全方法吗

2024-01-20

我想知道网络工作者是否可以安全地沙箱不受信任的 JavaScript 代码。举例来说,在绘图应用程序的上下文中,开发人员可以实现新的绘图工具,您可以将他们的代码放入 webworker 中,并且每当用户单击画布时,向他们发送一条包含光标位置的 JSON 消息,以及图像数据数组,当脚本完成时,它会传回一条包含新图像数据的消息。

这是否安全,或者是否存在我没​​有想到的风险?


DOM 对网络工作者来说是不可用的,但是可以访问同源的东西,比如indexedDB。请参阅我的相关问题:

对于不受信任的代码,工作人员是否足够安全 https://stackoverflow.com/questions/25964015/can-workers-be-secure-enough-for-an-untrusted-code

安全的方法是使用sandboxiframe 的属性:

http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/ http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

另请看一下我的库,它简化了流程并提供了与沙箱的便捷连接(函数导出而不是消息传递):

https://github.com/asvd/jailed https://github.com/asvd/jailed

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web Workers 是沙箱不受信任的 JavaScript 代码的安全方法吗 的相关文章

随机推荐

  • pyinstaller可执行文件的差异更新(修改嵌入的PYZ-00.pyz)

    我计划创建一个巨大的可执行目录并将其安装在某些设备上 想象一下 后来我发现我的 python 模块中有一个错误 有没有办法只传输 复制修改后的字节码 并用新的字节码替换原始字节码 我想这样做的原因是 在我的上下文中 带宽非常昂贵 我想远程修
  • 大型项目没有 PHP?为什么不? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我读过一些帖子 人们指出 没有建议 没有讨论 没有提供 PHP 不应该用于大型项目 作为一名主要的 PHP 开发人员 我问两个问题 大型项目 的
  • 带有 pod 标签的 Prometheus kubelet 指标 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我想弄清楚如何使用 prometheus stack 将 pod 标签从 kubelet 指标获取到指标标签 在我们的环境中 我们需要
  • 在 C 中调用函数时的序列点和未定义/未指定的行为

    我试图确定我对 C 中序列点的理解 只是想检查一些东西 目前 我认为 1 是未定义的 而 2 只是未指定的 因为在 2 中 在评估参数后存在序列点g and h 所以我们不修改i序列点之间两次 但是参数的求值顺序f仍然未指定 我的理解正确吗
  • 为什么我的 Azure 存储帐户上的队列域丢失?

    我已使用以下设置在 Azure 上成功创建存储帐户 部署 资源管理器 类型 通用 标准 复制 ZRS 在 Azure 门户上 我可以看到 Blob 服务 如果单击它 我可以在 blob 域下创建 blob 容器 https 帐户名称 blo
  • Javascript字典性能问题

    现在我有以下 javascript 字典 var a a SVG343 1942 a UAL534 2153 右边的数字代表时间 键是唯一的 ID 我想让 id 成为键 因为它们是唯一的 我的问题是给出一个时间找到对应的id 我要如何做到这
  • 将外部域名连接到AWS S3网站

    我想在 Amazon S3 上托管一个静态网站 创建了相关的存储桶 测试它们正常 现在我已经在 EuroDNS 注册了一个域名 www gopropel io 我找不到如何将其连接到我的 AWS S3 存储桶 我需要创建路由 53 托管区域
  • Flutter Firebase Messaging 无法创建服务 io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

    我正在尝试在 Flutter 应用程序中使用 Firebase Messaging 我遵循包装上的所有说明 在我的 pubspec yaml 中 我有这些包 dependencies flutter sdk flutter firebase
  • 当元素的父元素溢出时,使元素宽度拉伸以适合其子元素:auto;

    在这个简化的示例中 我有一个书柜 书架上放着书籍 书架是具有定义宽度的最外面的元素 书架上的书应该从左到右排列 没有包装 书架应该拉伸其宽度以显示书架上的所有书籍 所有书架的宽度必须相同 即最宽书架的宽度 My HTML div class
  • 保护 Raven 数据库的安全

    我正在尝试将 RavenDB 的访问权限限制为只有一名用户 更改设置以保护数据库后 我仍然可以访问 RavenDB 管理工作室 但我不确定为什么 我将 RavenDB 作为 Windows 服务运行 并且使用构建 573 这是我的 Rave
  • 如何向 Skype 聊天室发出 Jenkins 构建状态警报?

    我们公司使用 Skype 进行通信 我希望能够在 Jenkins 构建失败 以及恢复时 时向 Skype 聊天室发送警报 我怎样才能做到这一点 我已经使用了Skype 公共 API http developer skype com acce
  • C++ 和 Java 之间的低延迟 IPC

    对于以下情况 实现 C Java IPC 的最佳方法是什么 最近有人问类似的问题 https stackoverflow com questions 5900887 ipc between java and c applications 但
  • 将非数组变量的地址传递给声明为“Type ptr[static 1]”的函数参数是否有效?

    如上所述here https stackoverflow com questions 3430315 what is the purpose of static keyword in array parameter of function
  • ESLint 显示括号中的错误

    我的 javascript 代码工作正常 除了 ESLint 显示我有错误 例如 错误 myFunction 已定义但从未使用 no unused vars and 错误 文档 未定义 no undef 这只是一个问题 因为我使用的是外部
  • 如何设置单个单元格而不是事件的背景颜色?

    我不想为圣诞节和复活节等创建事件 而是希望能够为受影响的日期单元格着色 甚至可能为每个事件提供灰色半透明文本 在 FullCalendar 中有什么简单的方法可以做到这一点吗 EDIT 有人向我指出 fc state highlight 用
  • Mysql从管道导入

    我试图弄清楚如何将输出通过管道传输到 mysqlimport 中 但没有任何运气 我有一个巨大的文件 250 GB 我想在处理它后通过管道传输到 mysqlimport 我不想创建中间文件 表 我正在想象这样的事情 猫基因组 mpileup
  • C# 和 Visual Studio 2005 中的程序集之间的循环引用

    我正在努力标准化所有应用程序的分层 多层设计的单一方式 我正在尝试将我的所有应用程序设为 5 层 Code 用户界面 业务对象 或映射器 数据访问 关系型数据库管理系统 假设我正在开发一个具有用户登录 注销功能的应用程序 我正在 VS200
  • Pandas:根据特定列的值计数选择行

    从 panda 数据框中选择所有行的最简单方法是什么 谁的 sym 在整个表中恰好出现两次 例如 在下表中 我想选择 b e 中包含 sym 的所有行 因为这些符号的 value counts 等于 2 df pd DataFrame sy
  • 在 python 中执行 bash 脚本

    我创建了一个 Expect 脚本 执行时 它会通过 ssh 连接到服务器并执行一系列命令 伪代码如下所示 usr bin expect spawn ssh usr myip expect password send mypassword n
  • Web Workers 是沙箱不受信任的 JavaScript 代码的安全方法吗

    我想知道网络工作者是否可以安全地沙箱不受信任的 JavaScript 代码 举例来说 在绘图应用程序的上下文中 开发人员可以实现新的绘图工具 您可以将他们的代码放入 webworker 中 并且每当用户单击画布时 向他们发送一条包含光标位置