我正在使用Java Servlet编写服务器应用程序,有时必须执行用户上传的Python脚本。是否可以创建一个流程,使其具有诸如只能访问某个目录(可能使用ProcessBuilder)之类的限制?
我已经看过pysandbox了,但是我不确定在执行未知的Python脚本时,仅此一项是否足够安全。
脚本要做的就是使用某些库处理给定的String并使用print函数返回String。
我的方法正确还是有执行未知脚本的更好方法?
作为我的回答的前言,仅将白名单和黑名单进行得如此之遥,并被最有决心的黑客证明很容易破解。不要为这些安全性而烦恼。
使用pypy-sandbox差不多安全,它会创建一个OS级别的沙箱,并尝试隔离可能导致讨厌执行的进程。
为了实现真正的安全性,您可能想要更多类似以下模型的内容。
也许我只是偏执。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句