
🔒 Python Seguro en un Sandbox#
¿Necesitas ejecutar código Python sin que tenga acceso a archivos, red o recursos del sistema? Ahora es posible gracias a MicroPython compilado a WebAssembly.
🤔 ¿Por qué necesitas un sandbox?#
Los plugins y la ejecución de código dinámico son extremadamente útiles, pero inseguros si no están aislados. Imagina ejecutar un plugin que:
- Lee archivos privados
- Hace llamadas de red no autorizadas
- Consume toda tu CPU o memoria
Un sandbox lo previene todo esto.
🏗️ ¿Cómo funciona?#
MicroPython (una versión “lean” de Python 3 para sistemas embebidos) se compila a WebAssembly. Los motores WASM como wasmtime ofrecen:
✅ Control de memoria: límites estrictos ✅ Control de CPU: mediante el concepto “fuel” de wasmtime ✅ Control de archivos: acceso solo a lo que permitas ✅ Control de red: ninguna comunicación sin tu mediación ✅ Funciones host: exponer selectivamente APIs del sistema
💡 Explicación en pocas palabras#
WebAssembly es un formato binario que actúa como una “máquina virtual portátil”. Los navegadores lo usan para ejecutar código JavaScript compilado de forma segura. Al compilar MicroPython a WebAssembly, obtienes un intérprete Python que corre en un entorno completamente aislado: no puede acceder a tu disco, conectarse a internet o consumir recursos sin límites.
En la práctica, ahora puedes hacer:
with MicroPythonSession() as session:
session.run("x = 10")
session.run("print(x * 2)")Y todo sucede en un sandbox seguro, incluso si el código es malicioso.
🚀 Caso de uso real#
Simon Willison lo usa para Datasette Agent — permite ejecutar plugins de Python de forma segura sin riesgo de romper la aplicación principal.
Más información en el link 👇

