0

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

或者,有没有办法直接通过命令行限制 python 脚本的环境,这样当我运行解释器时,它不允许从目录中写入?我可以使用 virtualenv 做到这一点吗?如何?

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

4

2 回答 2

2

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

但是,如果您不完全信任代码源,则exec在任何情况下都不应该使用。请记住,假设您想出了一个 python 解决方案...... exec 代码可以在执行其邪恶行为之前从字面上撤消您对其施加的任何限制。如果您告诉我们您要解决的问题,我们可能会想出一个更好的主意。

于 2016-09-13T15:15:03.150 回答
2

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

于 2016-09-13T15:51:51.150 回答