我正在寻找一种在文件夹中编译和执行c ++程序的方法,这样它就无法访问正在执行它的文件夹之外的其他文件夹或程序。我正在尝试构建一个在线c ++编译器。
我想从程序中避免的事情是访问文件夹外的任何文件,更改/删除任何文件或创建新文件并在新位置复制。所有这些都是为了保护服务器免受正在执行的恶意代码的影响并使系统崩溃。
我有一个Windows环境但是如果有更好的方法来实现那么linux会做得很好。我已经在windows中查找了用户角色,访问权限以及一些像partyboxy一样的3d派对应用程序,但是不相信任何一个。
有什么建议吗?
答案 0 :(得分:2)
chroot
,但请确保您还以具有足够限制权限的用户身份运行代码,以便仅停用chroot来阻止它们:http://kerneltrap.org/Linux/Abusing_chroot
对于等效的Windows:https://serverfault.com/questions/161507/is-there-a-windows-equivalent-to-chroot,虽然看起来这个问题并没有得到大量的关注。
答案 1 :(得分:1)
您可以应用分配给用户的系统范围权限,只允许他们在特定文件夹中读取/写入/执行。所以他/她不能访问外部世界,也不能创建文件/文件夹等。