Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止python不受信任的代码访问文件系统和网络_Python_Heroku - Fatal编程技术网

防止python不受信任的代码访问文件系统和网络

防止python不受信任的代码访问文件系统和网络,python,heroku,Python,Heroku,我需要在我的服务器上执行用户提交的python代码。 问题是,我需要从我的源代码中导入几个imports-numpy、pandas和几个函数。我将使用heroku 如何以适当的方式做到这一点?我已经尝试过了,但它仍然允许使用numpy.save,pypypy根本不允许导入模块 我正在考虑两种方法: 用python创建单独的进程,并限制对该进程的文件系统和网络的访问。有人能给我解释一下这有可能吗 运行单独的heroku实例并通过rpc与之通信。远程服务器上不会有任何危险的文件\env变量 你能给我

我需要在我的服务器上执行用户提交的python代码。 问题是,我需要从我的源代码中导入几个imports-numpy、pandas和几个函数。我将使用heroku

如何以适当的方式做到这一点?我已经尝试过了,但它仍然允许使用
numpy.save
,pypypy根本不允许导入模块

我正在考虑两种方法:

  • 用python创建单独的进程,并限制对该进程的文件系统和网络的访问。有人能给我解释一下这有可能吗
  • 运行单独的heroku实例并通过rpc与之通信。远程服务器上不会有任何危险的文件\env变量
  • 你能给我推荐其他的选择吗


    还有一点-我需要每秒执行大约1000个函数。我不能每次都创建一个新的docker容器。

    一个单独的VM/docker实例是最安全、最简单的方法。RestrictedPython和co通常不再工作,或者相当脆弱,而单独的进程将需要一个沙箱(比如seccomp)。具有CPU时间和内存限制的VM在每次运行后都会被彻底清理(即重新启动)应该可以。为什么不先在VM中映射代码?如果安全,那么就执行它。正如我所说,现在部署我的启动的唯一选择是heroku。我不确定是否可以在it1上使用vm\docker。在Heroku上,不能在其他用户下运行子进程。或者更确切地说,您总是作为一个用户运行。这意味着您不能以任何方式限制有关文件系统读/写的子进程权限。2.您可以尝试一个单独的heroku实例,但要做到正确,需要做大量的工作。在那里,用户可以破坏浩劫,这并不重要,因为这些实例无论如何都在一个短暂的文件系统上。只有在服务器上存储了敏感信息(包括对环境变量的访问)时,才会出现问题。有意义的解决方案是只获取一个VPS。你要花上无数个小时才能在Heroku做对。同时,你可以以每月5美元或2.5美元的价格获得VPS。与为Heroku想出一个非常具体的解决方案相比,这一点投资是值得的。对于Heroku,您必须实现一个运行应用程序的服务器,以及运行用户提交的任意代码的可变数量的客户端。在VPS上,您只需在docker容器中快速运行它们,即可完成操作。赫罗库在那一刻也不再是自由的,因为dyno时间有限。