Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (54 sloc) 2.5 KB
Major tasks
* Remove os.fork() is not available on Windows
* Replace pickle with marshal?
* Re-enable ClearImport() protection: break test_random test
* Limit input/output size for call_fork()?
* subprocess should use a pipe or socket instead of a named file. Reuse
subprocess and multiprocessing?
* subprocess: disable site module (use -S)
* Windows:
* Test subprocess: no fork!
* Implement memory limit
* Python3 support: fix proxy()
* Clear sys.modules?
Minor tasks
* Clear sys.last_{type,value,traceback}?
* A function keeps its func_globals/__global__ attribute. Is it a problem?
* A generator can be controled: .throw(), .send(), etc. Is it a problem if the
generator was created outside the sandbox?
* Document "dangerous functions": functions allowing to override the sandbox policy
* Choose getModulePath() implementation (problem with "from encodings import
* Hide type.__bases__ on Python 2.5 or mark the attribute as read-only
* isinstance(createReadOnlyList(...), list) is False
* Write a test for traceback
* has a quit() builtin function (instance of site.Quitter)
which is not protected by a proxy
* Write a blacklist for ObjectProxy (eg. "__class__" attribute)
* Write a whitelist of modifiable attributes in ObjectProxy?
Problem of callback: have to be executed in the sandbox
* safe_open() should not use createReadOnlyObject(), but just hide the real
* Hide __file__ and __path__ attributes of modules and co_filename of code objects?
* Write a tool generating a security policy (sandbox configuration)
* Don't hide dict methods able to modify a dict (eg. dict.clear): need a
builtin frozendict type. I proposed the PEP 416 to add a builtin frozendict type.
* Write a cache for safe_import. Reuse sys.modules???
* import code module (InteractiveConsole) in the sandbox to
execute the whole interpreter in the sandbox
* Only instanciate each protection once?
* Write a test using class.mro()?
* Improve type(open(...))(filename, "r") error message,
see test_import_sys_stdout()
Todo later
* Check interaction with threads
* Check interaction with signals, eg. SIGALARM and SIGTERM
* Check for function importing modules:
warnings imports modules
> if there are other non-user-initiated dynamically imported modules?
Grep the source for PyImport.
Something went wrong with that request. Please try again.