2

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

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

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

4

2 回答 2

5

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

  • 不要将正确的答案存储为明文,使用某种散列。
  • 将 answers 对象和哈希函数隐藏在闭包中,这样它们就不能通过浏览器的 js 控制台调用。
  • 在检查过程中添加一些异步部分,例如简单的超时。通过以编程方式检查答案并查找结果对象,使用该限制代码来对抗暴力破解表单。
  • 混淆代码。通过默默无闻的安全性从来都不是一个好概念,但它可以防止最终的黑客直接从您的代码中复制相关部分。

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

于 2012-08-02T16:34:36.623 回答
2

我唯一能想到的就是混淆你的代码。这个过程也被称为缩小它。如果你这样做,你的代码将更难阅读,因此更难破解。它并没有使它无法破解,但它使那些希望作弊的人的生活变得更加困难。你有几个选择:

我认为这涵盖了所有主要的,但如果您知道我没有提到的更多内容,请在下面发表评论。

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

于 2012-08-02T16:31:05.363 回答