javascript - 我可以生成一个 javascript 文件的哈希值来检查它是否已被客户端编辑过吗?
问题描述
我正在使用https://pavlovia.org在风险选择中进行一些行为经济学实验。该任务要求受试者玩(或不玩)不同的彩票。系统创建在主体浏览器上运行的 javascript 文件。但是,我发现检查和编辑 javascript 非常容易,这将允许恶意主体给自己带来优势(例如,增加彩票支付的可能性)。
如果有人让所有彩票都“中奖”,很容易判断他们作弊,但如果他们将概率提高一点,那就很难了。
除了重写所有内容以使逻辑在服务器端之外,我想知道是否可以在客户端计算 JS 代码的哈希(md5 或 sha)并将其发送回服务器以检查 JS 是否有被编辑。我发现了几篇与在 javascript 中计算哈希相关的帖子,但我不确定文件是否可以计算自己的哈希。
我很欣赏一个老练的用户也可以破解那部分代码(例如,将原始文件复制到另一个名称,然后编辑将哈希指向原始文件的代码,或类似的东西)。但我想知道这种技术是否会成为作弊的另一个障碍。
解决方案
用户可以在运行时调试 JS 代码并替换某些变量中的值。即使 JS 散列是可能的,它也不会阻止它。我相信除了在服务器端加入关键逻辑之外别无他法。
推荐阅读
- javascript - 如何从ajax获取值到spring rest api控制器
- python - 通过 glob 打开一定数量的文件
- python - 使用 loc 的 Python 数据框意外显示错误
- vscode-remote - 创建 .devcontainer 存储库
- air - 气体传感器灵敏度特性
- algorithm - 如何在 dna 序列排序算法中从右上到左下填充矩阵
- javascript - 从字符串数组中查找最长的公共前缀
- python - 如何像使用 pwntools 获取 ELF 一样在 Python 中获取 PE 的核心文件?
- ios - 链接到旧版本的 iOS
- stripe-payments - 如何在 shopware 6 中使用 store-api 设置付款详情