背景:我想为我们学校编写一个编程竞赛网站,我知道我需要防止提交程序中的文件IO滥用。但是,我想知道如何做的是阻止某人编写可以执行其他程序的程序。例如,有人可以提交一个Java程序,该程序使用Runtime或ProcessBuilder类在我们的服务器上做一些恶意的事情,破坏网站或者与其他竞争对手混淆。
在unix / linux和(仅供将来参考)Windows服务器上有哪些方法可以防范这种情况?
答案 0 :(得分:3)
答案 1 :(得分:3)
对于Java,您可以使用security policies来实现它,或者至少使用它的一部分。 (正如评论中所建议的那样,Chroot监狱总是一个好主意。)
答案 2 :(得分:2)
实时在线编程比赛很酷......但有很多方法可以解决问题。我记得我们在学校使用过的一个Java,它有漏洞攻击漏洞,文件IO执行漏洞等等。我能够添加其他学校的朋友并列出服务器上的文件。我很惊讶系统仍在运行。正如评论中所提到的,最好避免任何类型的远程程序执行。