洛谷 的博客

RemoteJudge说明

洛谷 RemoteJudge 功能帮助用户打破不同 Online Judge 之间的壁垒,可以在洛谷里提交全网的题目,并且可以使用洛谷其他的配套功能,例如讨论、查看和提交题解、收藏题目、管理代码、团队作业等等。使用这项功能非常便利,也会有更好的体验,可以极大的提升学习效率。

目前该功能处于公测阶段。

只需要在题目列表中选择各种 OJ ,就可以查看题目。实名认证或者绑定自己的账号后可以提交这些题目并且获得评测结果。评测时间与这些 OJ 的运行状态有关;当这些 OJ 无法正常评测 (例如网站故障,被卡评测,评测量过大等原因),或在较长时间都没有返回评测结果的情况下,自然也无法反馈评测详情。

使用规则

  • 所有用户都可以绑定自己的所对应的各个 Online Judge 账号。关于用户的敏感信息,参见下方隐私政策
  • 用户在洛谷进行实名认证后,也可以借用洛谷的公用账号提交题目,而无需绑定自己的账号。
  • 所有的 RemoteJudge 提交均视为在洛谷中的提交,受洛谷社区规则约束,所有滥用 RemoteJudge 或者提交恶意代码的行为,按照洛谷社区规则的有关规定进行惩罚。
  • 所有的提交和评测均在其他网站进行,洛谷无法提供任何测试数据,亦不会对评测结果负责。

我们感谢所有的为算法爱好者提供题目和评测资源的 Online Judge 并且基于他们最诚挚的敬意。

常见提交被拒绝原因

如系统提示目标 OJ 服务器积极拒绝您的提交,则代表远程 OJ 出于某些原因,不愿意评测您提交的此份代码。常见的原因如下:

  • CodeForces 不允许您多次提交相同的一份代码。如您多次提交相同代码,则有可能会被返回此错误。如确实需要多次提交一份代码,请自行添加一些注释。
  • 本题在原 OJ 可能有各种各样的提交限制。例如 CodeForces、SPOJ 的题目经常会有提交语言的限制,则在洛谷使用不受支持的语言提交会触发此错误。

隐私政策

洛谷了解到大家普遍对绑定其他 Online Judge 的账号存在各种各样的疑虑,并对向洛谷提供其他 OJ 的明文密码有各种顾虑。基于技术原因,本功能无法在不获得您的其他 OJ 明文密码的情况下工作;但洛谷采取以下技术措施来尽可能保证您的密码安全。

  1. 从 2018.1.26 起登录过的洛谷账号,在登录的同时会基于您的洛谷登录密码,基于单项哈希算法自动生成一个用户密钥。因此,如您在此之前登录了洛谷账号并一直没有注销,您需要注销并重新登录才可开始使用 RemoteJudge 功能。
  2. 您第一次绑定 OJ 账号时,洛谷为您随机生成一个密钥,称为主密钥,并用您的用户密钥对主密钥进行对称加密。
  3. 您绑定 OJ 账号时,洛谷对您的 OJ 明文密码,使用主密钥进行对称加密。
  4. 您使用 RemoteJudge 功能时,洛谷使用您的用户密钥解密您的主密钥,然后使用主密钥解密您的明文密码,并提交评测。
  5. 您修改密码时,洛谷对您的主密钥重新加密。如您忘记密码并重置密码,则因为无法解密主密钥,您的所有 RemoteJudge 绑定将会失效,您需重新绑定。

通过此方法进行加密,即使洛谷数据库发生泄漏,您的 OJ 密码也有极大可能性是安全的。理论上攻击者只能通过触发内存信息泄漏或任意代码执行漏洞来窃取您的数据,但洛谷基于稳定的、经过世界上千万网站测试的一套通用技术架构打造,发生此类问题的可能性微乎其微。

虽然洛谷在此过程中的确有获取您明文密码的可能,但洛谷承诺洛谷的任意一名工作人员,均不会以任何方式,同时开发组也不会为其提供任何渠道,来获取您的 OJ 明文密码。您的明文密码将只在自动程序为您提交代码的过程中被短暂使用,并在使用结束后立刻从服务器内存中清除,除此之外不会发生任何的其他读取。如果您依然对此有疑虑,可以将其他 OJ 的密码设为其他任何地方都用不到的密码。洛谷不对您使用 RemoteJudge 而产生的后果负任何责任。

版权规则

洛谷尊重其他 OnlineJudge 的版权。RemoteJudge 仅为题面展示,本身并不提供评测服务。用户可以使用自己的账号在其他OJ上进行提交,相当于自己在源 OJ 进行提交并在洛谷保留一个提交记录的副本,和传统的 Online Judge 的原理有本质的不同。在其他网站没有明文规定禁止展示题面的情况下,我们所有在 RemoteJudge 上展示的题目均明确标注题目来源和相应的链接,供用户确定题目来源。


2019-12-04 12:27:38 in 功能说明