瓦尔镇镇

主要观点:在 Val Town 上用 Val Town 实现部分功能,通过使用 Deno 的 Web Worker 和相关权限来安全执行不受信任的代码,包括设置 Web 服务器在 Worker 中处理 HTTP 请求,并创建了一个简单的 UI 来接受用户代码并存储在 SQLite 数据库中,还提出了一些可进一步实现的功能。

关键信息:

  • import动态加载用户代码危险,用户代码可访问系统内存和权限。
  • 使用 Web Worker 可隔离用户代码,通过workerEval函数处理代码,但存在消息传递限制,如不能直接传递Request对象。
  • 通过在 Worker 中设置服务器serveRequest函数来处理请求,在 Worker 代码中处理后续交换。
  • 在 Townie 中创建 UI 接受用户代码并存储,实现了一些简单功能,如托管 TLDraw、构建 React Playground 等。

重要细节:

  • 示例代码展示了如何用不同方式处理用户代码和请求,如export default (req: Request) => Response.json("I work!")等。
  • 提到 Val Town 最初叫“Eval Town”,后因代码块叫“vals”而缩短。
  • 介绍了 Worker 的权限设置,如{net: false}防止代码进行 HTTP 请求。
  • 给出了相关代码的链接,如https://www.val.town/v/maxm/VTTnosecurity等用于具体代码查看。
阅读 13
0 条评论