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

标签 javascript ajax security validation

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

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

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

最佳答案

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

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

但是,目前还不清楚如何将结果发送到服务器进行存储。如果那部分很容易被伪造,那你就迷路了。

关于javascript - 使用 Javascript 检查测验答案的最安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781627/

相关文章:

javascript - 有没有办法限制文本区域(javascript/jQuery)中每行的字符数?

javascript - jQuery 事件从对象获取所有数据

javascript - 带有自定义指令的表行

php - “加载更多”获得 10 个以上结果

jquery - 无法使用 jquery datatable 通过 ajax 从文件中获取数据

javascript - 确保 jQuery 事件处理程序执行顺序

php - 显示键入时键入的字符(即时)

powershell - 从网络位置运行 EXE 时如何绕过安全警告?

android - Android 上是否有 javax.smartcardio 类似物?

javascript - Electron,如何在没有nodeIntegration的情况下访问 Node API