我正在寻找一种在一台服务器上运行多个 python/php 应用程序的方法。每个应用程序都在其自己的 /bob_app 文件夹中。
我需要用户不能像这样运行:
>>> import glob
>>> glob.glob("/*")
['/boot', '/cdrom', '/dev', '/lib64', '/run', '/initrd.img', '/sys', '/media', '/var', '/etc', '/srv', '/initrd.img.old', '/root', '/sbin', '/tmp', '/opt', '/vmlinuz', '/usr', '/home', '/lost+found', '/bin', '/proc', '/lib', '/mnt', '/vmlinuz.old']
或 php 等等价物。应用程序应该只看到它们正在运行的文件夹的内容,除此之外什么都没有。
编辑:应用程序位于 docker 容器中,并且在 docker 中使用 chroot 环境不是我确定的正确做法。
如果您可以控制应用程序,那么他们是否可以看到其他应用程序路径并不重要。如果应用程序使用不同的 UID 运行,您只需将应用程序目录的权限设置为 700,这样其他用户就无法看到他们的文件。
即使用户可以输入资源的路径,您也可以清理他们输入的路径。将接受的路径限制为适当的目录。
有多种方法可以安全地提供配置数据。您可能需要考虑使用服务存储库/注册表。如果您有密码或其他敏感数据,则应以加密格式存储。