javascript - 使用 JSON 提供测验答案的简洁方法

标签 javascript json ajax architecture client-side

这更多的是关于代码组织和可以概括的更灵活的方法。具体来说,这是我为了提高 AJAX/JSON 技能而构建的 Jeopardy Quiz。我想将答案与问题分开。只需在 DevTools 中找到并打开 JSON 即可找到正确答案。我想让它变得更难一点,但不会太难编码或在一两个 JSON 文件之后添加更多层。 (并且不像散列数据库查询那样矫枉过正,因为它只是一个宠物项目)。

不知道该怎么做... 这是我的 JSON.. { "question": "杰斐逊 build 蒙蒂塞洛的城镇", “选择”:[ “里士满”, “罗利”, 《夏洛茨维尔》 ] }

我在 JSON 中得到了问题的正确答案,但我不确定这是最好的方法...我认为 anwser key 可能会更好。

最佳答案

实现此目的的一种方法(并保持简单)是对 JSON 对象进行 Base64 编码。

首先,获得所有问题后,将它们编码为 Base64。您可以使用 JavaScript 中的 btoa 函数来执行此操作。不过,不要将这行代码放入您的客户端中。

btoa( JSON.stringify({ "question": "Town where Jefferson built Monticello", "choices": [ "Richmond", "Raliegh", "Charlottesville" ] }))

然后,获取该 base64 编码字符串并将其放入您的代码中。

const data = "eyJxdWVzdGlvbiI6IlRvd24gd2hlcmUgSmVmZmVyc29uIGJ1aWx0IE1vbnRpY2VsbG8iLCJjaG9pY2VzIjpbIlJpY2htb25kIiwiUmFsaWVnaCIsIkNoYXJsb3R0ZXN2aWxsZSJdfQ=="

从那里,您可以解码并将其转换回代码中的 JSON 对象。

let questions = JSON.parse( atob(data) )

就像您在问题中提到的那样,这仍然可以被“黑客攻击”。无论如何,这都不是适当的安全措施。人们可以检查它并运行代码来获取问题和答案。然而,乍一看答案并不明显。

为了让它变得更好一点,您可以通过混淆工具运行 JavaScript。 dataquestions 的变量会被破坏,并且识别正在解码的内容会有点困难。

关于javascript - 使用 JSON 提供测验答案的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47916471/

相关文章:

javascript - 使用 jQuery .hide/.show 仅显示和隐藏一个 <div>

javascript - 忽略条件语句

javascript - 如何使用 API 调用中的 JSON 数据播放音频? (演讲者)

javascript - 如何添加/管理 Ajax 请求的持久 URL 参数?

javascript - GM_xmlhttpRequest responseText 在 Firefox 中为空,但在 Chrome 中完美

javascript - 捕获 Node.js 中的错误

java - JSON `date(...)` 到 `java.Util.Date` 使用 `org.json`

javascript - Highchart 在 jquery 函数中不起作用

PHP 不识别 ajax 调用

javascript - 按描述过滤 JSON 对象 Express JS/Underscore JS