【问题标题】:Can i generate a hash of a javascript file to check if it has been edited by the client? [closed]我可以生成一个 javascript 文件的哈希值来检查它是否已被客户端编辑过吗? [关闭]
【发布时间】:2020-11-30 21:55:37
【问题描述】:

我正在使用https://pavlovia.org 在风险选择中进行一些行为经济学实验。该任务要求受试者玩(或不玩)不同的彩票。系统创建在主体浏览器上运行的 javascript 文件。但是,我发现检查和编辑 javascript 非常容易,这将允许恶意主体给自己带来优势(例如,增加彩票支付的可能性)。

如果有人让所有彩票都“中奖”,很容易判断他们作弊,但如果他们将概率提高一点,那就很难了。

除了重写所有内容以使逻辑在服务器端之外,我想知道是否可以在客户端计算 JS 代码的哈希(md5 或 sha)并将其发送回服务器以检查枯萎JS已被编辑。我发现了几篇与在 javascript 中计算哈希相关的帖子,但我不确定文件是否可以计算自己的哈希。

我很欣赏老练的用户也可以破解这部分代码(例如,将原始文件复制到另一个名称,然后编辑将哈希值指向原始文件的代码,或类似的东西)。但我想知道这种技术是否会成为作弊的另一个障碍。

【问题讨论】:

  • 你不能按照你的要求去做,尽管你可以做类似的事情。坦率地说,我不认为它会提高到足以值得付出努力的程度,而只是在 JavaScript 上使用一个好的缩小器,以便它真的难以阅读和理解。正如您所说,唯一确定的方法是根本不信任客户端发送的任何内容,因为它甚至可能不是浏览器,它可能是任何可以发出 HTTP 请求的工具,可能是专门定制的。跨度>

标签: javascript security hash anti-cheat


【解决方案1】:

用户可以在运行时调试 JS 代码并替换某些变量中的值。即使 JS 散列是可能的,它也不会阻止它。我相信除了在服务器端制作关键逻辑之外别无他法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多