Skip to content
TopicTracker
来自 simonwillison.net查看原文
译文语言译文语言

Datasette Apps:在 Datasette 内部托管自定义 HTML 应用

Datasette Apps 是一个新插件,允许用户在 Datasette 中托管自包含的 HTML+JavaScript 应用。这些应用运行在严格受限的 iframe 沙盒中,通过 postMessage 和 MessageChannel 进行只读 SQL 查询,并可配置存储查询实现写入操作。采用 CSP 头、沙盒属性与权限控制的多层安全机制,防止数据泄露。项目受 Claude Artifacts 和作者多年构建 HTML 工具的经验启发,现已支持 AI 辅助生成应用代码。

背景速读

- **Simon Willison** 是 Datasette 的创始人,Datasette 是一个开源工具,可将 SQLite 数据库发布为可查询的 JSON API 和 Web 界面,常用于数据新闻和探索性数据分析。 - **Datasette Apps** 是 Datasette 生态中的一个新插件,允许用户在 Datasette 实例内部托管自定义的 HTML+JavaScript 应用。这些应用运行在严格限制的 iframe 沙箱中,通过 postMessage / MessageChannel 与父页面通信,只能执行管理员允许的 SQL 查询。 - 安全模型的核心组合:`<iframe sandbox="allow-scripts">` 阻止访问父页面 DOM、cookie 和 localStorage,同时通过 `<meta>` 标签注入的 Content-Security-Policy 阻止应用向外部服务器发起 HTTP 请求,防止数据泄露。 - 该项目受 **Claude Artifacts**(Anthropic 的 AI 生成并预览 HTML/JS 应用的功能)启发,Willison 希望给"AI 生成的代码片段"加上持久化数据库后端。用户可复制一段系统提示词到 ChatGPT / Claude / Gemini 中,让 LLM 直接生成 Datasette App 的完整代码。 - **Datasette Agent** 是一个独立但相关的插件,允许 AI 助手通过工具调用直接为 Datasette 创建和编辑应用,类似 Claude Artifacts 的交互方式。 - 文章提及的 **Claude Fable 5** 是 Anthropic 在 2026 年中推出的一个高端模型,但随后因美国政府指令被限制访问;Willison 用它做安全审计,发现了一个跨用户数据窃取的漏洞——应用可以通过允许列表的 CSP 域名向攻击者发送数据,这个问题通过新增权限层级加以修复。

相关报道

  • HtmlUnit 5.0.0 has been released, now requiring JDK 17 as the minimum version. Key updates include major JavaScript engine improvements, full Web Crypto API support, WebSocket improvements, Web Speech API support, and updated browser profiles for Firefox 150 and Chrome/Edge 148.

  • JsPlumb, the JavaScript library for building visual connectivity interfaces, has released a major update with a modernized API and new diagram/2D chart engines. The project is now free for non-commercial use, with packages available for React, Angular, Vue, Svelte, and vanilla JS on the public NPM registry.

  • Datasette-apps is a new system that allows users to bundle and install full applications within Datasette, turning it into a platform for data-driven apps. It enables developers to create self-contained packages combining SQLite databases, metadata, plugins, templates, and assets.