2012-08-02 63 views
2

使用AJAX + PHP设计匹配的问答游戏项目发奋工作后,我才知道,我的公司使用,以销售产品的学习套件并不让我跑服务器 - 在后端安装脚本以安全地检查答案。这全部归因于不幸的等级专制。对于使用JavaScript来检查测验最安全的方法解答

长话短说,我必须以某种方式检查客户端上的答案(或找出一些棘手)。幸运的是,我已经能够将jQuery上传到本地文件夹结构,所以我可以使用它。

在客户端检查客户端答案的最安全方法是什么?或者有什么方法可以引用外部文件...就像XML文件或其他东西一样,以更安全地检查答案?

+7

浏览器用户可以完全控制那里发生的事情。 **完成**控制。安全地进行任何形式的验证的唯一方法是在安全的服务器上进行。 – Pointy 2012-08-02 16:14:15

+2

所以你写在PHP中 - 但你不能使用PHP。标签是否必要? – 2012-08-02 16:15:11

+0

我只是好奇,如果有人在匹配问答游戏中作弊,会有什么后果?实际上会发生什么不好吗? – 2012-08-02 16:22:58

回答

2

我唯一能想到的就是混淆你的代码。这个过程也被称为缩小它。如果你这样做,你的代码将难以阅读,因此更难以破解。它不会让它变得不可靠,但对于那些想要作弊的人来说,这会让生活稍微困难一些。您有几种选择:

我认为,涵盖了所有主要的因素,但是如果你知道我还没有提到,请留下纪念nt下面。

相关问题这样的回答:Is there a good JavaScript minifier?

+0

对我来说似乎很合理。这是我从其他人谈到的结论。 – 2012-08-02 16:33:37

+0

谢谢!我很高兴能有所帮助。 – starbeamrainbowlabs 2012-08-02 16:34:39

3

OK,如果你真的想要和需要做的一切JS,这里是我会怎么做:

  • 不要储存正确的答案作为明文,使用某种哈希。
  • 将封闭答案对象和散列函数隐藏在闭包中,以便它们不能通过浏览器的js控制台调用。
  • 在检查过程中添加一些异步部分,例如一个简单的超时。通过以编程方式检查答案并查找结果对象,使用该限制代码对brute强制执行表单。
  • Obfuscate该代码。 Security through obscurity从来不是一个好概念,但它可以防止最终黑客直接从您的代码中复制相关部分。

但是,您仍然不清楚如何将结果发送到服务器以存储它们。如果那部分很容易被伪造,你就会迷失方向。

相关问题