我正在开发一个类似于hackerrank.com的平台,有人可以在其中提交C代码,然后该代码将被编译并在我的服务器上运行,但我想限制一个人能够执行的C指令集我的服务器。
例如:将指令集限制为仅 I/O。
我的第一种方法是解析代码并查找恶意代码,但这很幼稚,因为它很容易被覆盖(shell 代码、混淆等)
我的第二种方法(我认为可行的方法)是删除所有“不必要的”标题,只留下 stdio.h、math.h、stdlib.h 等……仅举几例。
但是后来我认为可能可以从 gcc 限制 C 的指令集,但是在阅读了 gcc 的 man 条目后,我找不到任何接近我需要的东西,所以我想知道这是否可能。
如果这是不可能的,那么解决这个问题的安全方法是什么?除了摆脱不必要的库。
谢谢!