如何在安全限制下安全地编译和执行C ++程序

How to compile and execute c++ program safely with security restrictions?

本文关键字:安全 执行 编译 程序      更新时间:2023-10-16

我正在寻找一种在文件夹中编译和执行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,尽管看起来这个问题并没有引起大量关注。

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