将python exec acess限制为一个目录

时间:2016-09-13 15:11:43

标签: python python-2.7 python-exec

我有一个python脚本,它使用 exec 函数执行一串代码。我需要一种方法来限制脚本对当前目录的读/写访问。我怎样才能做到这一点?

或者,有没有办法直接通过命令行限制python脚本的环境,这样当我运行解释器时,它不允许写出目录?我可以使用virtualenv吗?怎么样?

所以基本上,我的应用程序是一个门户网站,人们可以编写和执行python应用程序并获得响应 - 我已经在heroku上托管了这个。现在可能有多个用户拥有多个文件夹,没有用户可以访问其他文件夹甚至系统文件和文件夹。权限应由用户在nodejs app(Web应用程序)上确定,而不是本地用户。我如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

以仅拥有该特定目录且在其他任何地方没有权限的用户执行代码?

但是 - 如果您不完全信任代码源,则在任何情况下都不应该使用exec。记住,假设你想出了一个python解决方案...... exec代码可以在完成恶意行为之前完全取消你对它施加的任何限制。如果你告诉我们你试图解决的问题,我们可能会提出一个更好的主意。

答案 1 :(得分:2)

问题归结为:我如何安全地执行我不信任的代码 你不能。
要么你知道代码做了什么,要么你不执行它 您可以为进程创建一个隔离的环境,例如使用docker。但用例远离执行不安全的代码。