2

我正在尝试将包含测验数据[包括答案]的json对象从我的代码发送到javascript。我用了...

var quizJson = <%=jsonObj%> 

但问题是,我的用户足够聪明,可以使用查看源代码并揭示答案。有什么建议吗?

提前致谢

4

4 回答 4

6

唯一正确的解决方案是不要以任何形式将答案发送到浏览器。浏览器需要将用户输入的答案发送回服务器。然后您使用服务器端代码来确定答案是否正确。

于 2012-05-01T02:47:26.867 回答
4

当用户选择答案时执行 AJAX 调用。这样,验证将是外部的,用户将无法查看源代码以找到答案。

于 2012-05-01T02:46:28.240 回答
2

任何客户端都可以读取您发送给客户端以用于客户端脚本的任何内容。即使您以某种方式掩盖了源代码中的答案,任何人都可以调出调试器并在您“解码”它们时看到真正的答案。这就像许多经典游戏黑客一样,人们会禁用墙壁并查看过去的内容。您发送给客户的任何东西都是易受攻击的!

保护答案的唯一方法是将它们保存在服务器上。将尝试的答案发布到服务器,然后在那里评分并将结果返回给客户端。

于 2012-05-01T02:49:37.617 回答
1

使用简单的加密(像这样)以向用户隐藏文本。如果数据不重要,那么这将推动平均检查。

但是,如果答案对隐藏很重要,那么请将它们隐藏......并且远离客户端。

于 2012-05-01T02:57:46.533 回答