7.2 内部安全

内部安全依赖于用户不能获取到任何关键数据(裁判输入/输出数据以及其他用户的解答)。数据被存放在两处:DOMjudge 的系统账户文件和 SQL 数据库。

应该通过限制相关文档的访问来保护相关文件。

注意:数据库密码存储在 etc/dbpasswords.secret 中,该文件应对队伍不可读但是对 web 服务器可读,以使裁判 web 界面正常工作。一种解决方案是使他进队 web 服务器所在的组可读。当使用默认的安装方案及配置选项,并且 make install-{domserver,judgehost} 在以 root状态运行时,这种方案将自动执行。web 服务器组可以用 configure -with-webserver-group=GROUP 设置,默认情况下他被与系统中其他组(比如说www-dataapache)区分开来。

评测机和 DOMserver 通过 HTTP 通讯。其他与 DOMserver 的 web 接口进行通讯的部分也使用此协议。我们建议安装 HTTPS 这样队伍、DOMserver 以及评测机之间的所有交互都将被保护。如果你要使用个人签署的证书,你应该考虑将他预先安装到队伍主机上来避免麻烦。

当使用 IP 认证时,应确保队伍不能更改自己的 IP(这一般需要 root/管理员权限才能执行),因为否则他们将可以查看其他队伍的提交信息(但不是他们的代码)和 clarification,并且可以以被入侵队伍的身份来提交答案。注意:这意味着也要考虑别的措施,比如怎样防止队伍登陆别人的电脑并且窃取他们的身份。

问题文本可以不经筛选地被上传到 DOMjudge,因此应确保他们来源可信,尤其是对 HTML 而言,从而防止 XSS 攻击。

Last updated