Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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
使用Docker的Python脚本沙箱_Python_Python 3.x_Docker - Fatal编程技术网

使用Docker的Python脚本沙箱

使用Docker的Python脚本沙箱,python,python-3.x,docker,Python,Python 3.x,Docker,如果我使用Python 3 Alpine之类的基本映像构建一个容器,并遵循中指示的强化,那么注入和执行Python脚本是否安全 我的意思是,如果用户使用Python函数编写一些危险的东西(比如sudorm-R),那么只有容器会受到这些问题的影响,对吗 这是一种好的做法吗?我需要执行一些对系统、模块等访问受限的小代码片段。我不会将Docker视为安全“银弹”;在将代码发布到您的系统之前,您至少需要知道您正在运行的代码是“值得信赖的”,即使是在Docker下 请记住,您需要拥有root权限才能运行d

如果我使用Python 3 Alpine之类的基本映像构建一个容器,并遵循中指示的强化,那么注入和执行Python脚本是否安全

我的意思是,如果用户使用Python函数编写一些危险的东西(比如
sudorm-R
),那么只有容器会受到这些问题的影响,对吗


这是一种好的做法吗?我需要执行一些对系统、模块等访问受限的小代码片段。

我不会将Docker视为安全“银弹”;在将代码发布到您的系统之前,您至少需要知道您正在运行的代码是“值得信赖的”,即使是在Docker下

请记住,您需要拥有root权限才能运行
docker
任何东西,否则您可以轻松获得它们(
docker run-v/:/host-u root…
将允许您自由编辑主机文件系统)。如果您的应用程序确实在处理不可信代码,请考虑是否希望特权进程能够处理它。 除此之外,Docker容器还共享主机的内核和各种物理资源。如果存在内核权限提升bug,容器中运行的某些东西可能会利用它进行攻击。如果您的不受信任代码进行出站TCP调用,以在您的网络上随意移动您不想要的数据,则默认情况下不受限制。如果它“仅仅”使用你的CPU周期来挖掘比特币,你就无法控制它


如果所有这些听起来对您来说都是可接受的风险级别,那么在Docker下运行某种程度上可信的代码肯定比不运行要好:您确实可以获得一些保护,防止更改主机上的文件和主机级别的设置,如网络配置,尤其是如果您认为正在运行的代码不是恶意代码。

我的问题是,我正在使用Blockly使用前端代码生成工具设计和生成一些代码片段,这给了我一个随时可以执行的python脚本,该脚本保存在我系统的特定目录下,然后执行。问题是,如果我截取ajax请求,然后修改python代码,我可以在脚本中写下我想要的内容,然后执行它,这可能非常危险;我尝试使用后端服务生成代码,但由于一些未初始化的组件等原因,这不是一个好的解决方案。。。