我正在寻找一种在文件夹中编译和执行 C++ 程序的方法,这样它就无法访问正在执行的文件夹之外的其他文件夹或程序。我正在尝试构建一个在线 C++ 编译器。
我想从程序中避免的事情是访问文件夹外的任何文件、更改/删除任何文件或创建新文件并在新位置复制。所有这些都是为了保护服务器免受执行恶意代码和导致系统崩溃的影响。
我有一个windows环境,但如果有更好的实现方式,linux会很好。我也在 Windows 中寻找用户角色、访问权限和一些 3d 派对应用程序(如沙盒),但对其中任何一个都不满意。
有什么建议吗?
最佳答案
chroot
在 *nix 系统上用于此目的,但请确保您还以具有足够受限权限的用户身份运行代码以阻止它们只是撤消 chroot:http://kerneltrap.org/Linux/Abusing_chroot
对于 Windows 等效项:https://serverfault.com/questions/161507/is-there-a-windows-equivalent-to-chroot ,尽管看起来这个问题并没有引起大量关注。
关于c++ - 如何在有安全限制的情况下安全地编译和执行c++程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854446/