# 7.2 内部安全

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

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

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

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

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

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