0

我正在寻找一种在文件夹中编译和执行 c++ 程序的方法,这样它就无法访问正在执行它的文件夹之外的其他文件夹或程序。我正在尝试构建一个在线 c++ 编译器。

我想从程序中避免的事情是访问文件夹外的任何文件,更改/删除任何文件或创建新文件并在新位置复制。所有这些都是为了使服务器免受正在执行的恶意代码并导致系统崩溃。

我有一个 windows 环境,但如果有更好的方法来实现,那么 linux 会做得很好。我已经在 windows 中寻找用户角色、访问权限和一些 3d 派对应用程序(如沙盒),但对其中的任何一个都不相信。

有什么建议么?

4

2 回答 2

2

chroot在 *nix 系统上用于此目的,但请确保您还以具有足够受限权限的用户身份运行代码,以阻止他们只是撤消 chroot: http: //kerneltrap.org/Linux/Abusing_chroot

对于 Windows 等效项:https ://serverfault.com/questions/161507/is-there-a-windows-equivalent-to-chroot ,尽管看起来这个问题并没有引起很多关注。

于 2012-06-01T17:34:16.323 回答
1

您可以应用分配给用户的系统范围权限,让他们只能在特定文件夹内读取/写入/执行。所以他/她不能访问外部世界,也不能创建文件/文件夹等。

于 2012-06-01T17:00:29.290 回答