热门开源项目
MicroPython+WASM实现Python沙箱执行
原标题:Running Python code in a sandbox with MicroPython and WASM
TL;DR · 一句话结论
开发者simonw将MicroPython编译为WASI,用wasmtime运行,实现了Python代码的沙箱执行,支持持久会话和自定义宿主函数,已集成到Datasette Agent插件。
主要内容
- 01库名micropython-wasm,当前为alpha版本
- 02使用wasmtime执行WebAssembly二进制
- 03支持持久化会话与变量保留
- 04可通过C模块注册宿主函数
- 05限制内存和CPU(燃料机制)
- 06已集成Datasette Agent插件
背景
开发者Simon Willison长期为Datasette、LLM等插件系统寻找安全沙箱方案。传统Python插件拥有完整文件/网络权限,存在风险。WebAssembly因浏览器级安全经验成为候选,MicroPython轻量且适合嵌入。该项目将MicroPython编译为WASI,通过wasmtime在Python中运行,并实现持久解释器状态。
为什么值得关注
为插件系统提供安全的代码执行环境,使AI工具可安全运行用户提供的Python脚本,避免文件泄露、网络攻击等问题。适用于Datasette Agent等需要LLM生成代码并执行的场景。
🇨🇳
对中国用户与市场
国内开发者可参考此方案构建自己的AI工具沙箱。但因依赖GitHub/wasmtime等外部库,网络受限环境下需自建镜像或离线编译。
继续关注
⚠尚未确定的部分
- ·alpha版本,作者不推荐生产使用
- ·CPU燃料单位不易调优,默认值可能不当
- ·C模块可能存在漏洞,但WASM隔离可缓解
- ·Python标准库支持有限(MicroPython子集)
→可采取的行动
- ·尝试安装pip install micropython-wasm并测试基础功能
- ·阅读源码中的research.md和测试用例
- ·若需稳定方案,关注后续正式版或等待企业级实现
摘记
I've put it through enough testing that
WebAssembly is a much better candidate.
#MicroPython#WebAssembly#Wasmtime#Datasette Agent#Datasette#Simon Willison#Pluggy#沙箱#Python#安全执行
🤖 本文根据 Simon Willison 的 RSS 内容整理,并由 AI 辅助提炼要点。完整上下文请以 原文 为准。