使用Javascript检查测验答案的最安全方法

时间:2012-08-02 16:13:10

标签: javascript ajax security validation

在使用AJAX + PHP设计匹配的测验游戏的项目上努力工作后,我了解到我公司用来分发其产品的学习套件不允许我在后端运行服务器端脚本来安全地检查答案。这完全归功于不幸的等级专制。

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

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

2 个答案:

答案 0 :(得分:3)

好的,如果你真的想要并且需要在JS中做所有事情,我就会这样做:

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

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

答案 1 :(得分:2)

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

我认为这涵盖了所有主要内容,但如果你知道我还没有提及,请在下面发表评论。

此答案的相关问题:Is there a good JavaScript minifier?