我正在编写一个自动评分的Web应用程序,它接受用户输入的程序。有哪些方法可以保护我的Web服务器免受恶意程序输入的攻击?目前仅支持Java程序输入。我在考虑如何禁用对某些包/类的访问,但我不确定如何操作。有任何想法/建议吗?
最简单的保护系统免受恶意程序攻击的方法是在单独的虚拟机中运行该程序。如果你使用Linux系统,可以使用KVM等工具启动虚拟机,在其中运行程序,并将输出记录在某个地方(例如通过虚拟串口)。不要让该虚拟机连接网络,并在每次使用后清除其驱动器。如果以上方法行不通,Java确实有一个广泛的安全和沙箱模型,最初是为隔离小应用程序而设计的。然而,这种方法的正确使用比较棘手,我不建议将其用于类似此类问题 - 启动虚拟机更加容易和安全。