我正在使用Java servlet编写服务器应用程序,并且在某些时候,必须执行由用户上载的Python脚本。是否有可能创建一个具有限制的流程,例如只能访问某个目录(可能使用ProcessBuilder)?
我已经看过pysandbox了,但是我不确定在执行一个未知的Python脚本时这是否足够安全。
所有脚本必须做的是使用某些库处理给定的String并使用print函数返回一个String。
我的方法是否正确或是否有更好的方法来执行未知脚本?
答案 0 :(得分:1)
作为我的回答,白名单和黑名单只是到目前为止,并且被最坚定的黑客证明容易被打破。不要担心这些安全风格。
关于尽可能安全,使用pypy-sandbox它会创建一个操作系统级别的沙箱,并尝试隔离可能导致恶意执行的进程。
为了真正的安全性,你可能想要更像这样的模型。
或许我只是偏执狂。