2 ms·
I have been thinking the exact same thing, and specifically I would like to try implementing something that works with the Rye python manager. Say I have a dir
by semi-extrinsic 3y ago
I have been thinking the exact same thing, and specifically I would like to try implementing something that works with the Rye python manager.
Say I have a directory with a virtualenv and some code that needs some packages from PyPI. I would very much like to sandbox anything that runs in this virtualenv to just disk access inside that directory, and network access only to specifically whitelisted URLs. As a user I should only need to add "sandbox = True" to the pyproject.toml file, and optionally "network_whitelist = [...]".
From my cursory looking around, I believe Cloudflare sandbox utils, which are convenience wrappers around systemd Seccomp, might be the best starting point.
Edit: or just use Firejail, interesting...
You mention sandboxing on the language level, but I don't think it is the way. Apparently sandboxing within Python itself is a particularly nasty rabbit hole that is ultimately unfruitful because of Python's introspection capabilities. You will find many dire warnings on that path.