ใช้เทคนิค Sandboxed Python หรือ Restricted Execution เพื่อจำกัดสิทธิ์การทำงาน
สิ่งที่ควบคุมได้
- อนุญาต/ห้าม Import โมดูลเฉพาะ
- จำกัดเวลารัน (Execution Time Slices)
- บล็อก/อนุญาต Network Access
- จำกัดการเข้าถึง Filesystem (Chroot)
วิธีการ Implement
- แก้ CPython Runtime - ยาก สำหรับผู้เชี่ยวชาญ
- ใช้ Runtime อื่น เช่น PyPy Sandbox
- ใช้ OS-level Isolation Container (Docker), gVisor, Firecracker
- ใช้ Library เตรียมไว้ เช่น RestrictedPython
RestrictedPython
เป็น Subset ของ Python ที่กำหนดสภาพแวดล้อมที่เชימנได้ (Trusted Environment) สำหรับรันโค้ดที่ไม่น่าเชื่อถือ ไม่ใช่ Sandbox จริง แต่ช่วยกำหนดกฎการเข้าถึง
คำเตือน: Sandboxing ใน Python ทำได้ยากมาก เพราะภาษาเองไม่ได้ออกแบบมาเพื่อ Security Boundary ควรใช้ OS-level Isolation แทน