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