gpt4 book ai didi

javascript - 如何检查 AJAX 请求的真实性

转载 作者:IT王子 更新时间:2023-10-29 03:14:51 28 4
gpt4 key购买 nike

我正在设计一个网站,用户可以在其中尽快解决难题。 JavaScript 用于为每个拼图计时,当拼图完成时,毫秒数通过 AJAX 发送到服务器。如何保证服务器收到的时间不是用户伪造的?

我认为基于 session 的真实性 token (用于 Rails 中的表单的那种)是不够的,因为我需要验证值的来源,而不仅仅是请求的合法性.

有没有办法对请求进行加密签名?我想不出任何黑客无法复制的东西。是否有任何 JavaScript,就其暴露的客户端性质而言,容易被篡改?我是否必须使用经过编译的东西,例如 Flash? (Yikes。)或者有什么方法可以隐藏 key 吗?或者其他我没有想到的?

更新:澄清一下,我不想惩罚网络连接速度慢的人(网络速度应该被认为是不一致的),所以计时需要 100% 客户端(计时器只有在我们知道用户可以看到拼图)。此外,涉及金钱,因此再多的“信任用户”也是 Not Acceptable 。

最佳答案

您无法通过密码保证计时的安全性,因为客户端的浏览器无法进行安全计算。通过调整实际时间,可以绕过与服务器之间的任何加密方式。

而且服务器上的计时也不起作用 - 如果您不考虑往返时间的延迟,具有较低延迟连接的用户将具有优势;如果这样做,用户可以通过在此处添加额外延迟然后在稍后将其删除来阻止补偿阶段。

当然,您可以让用户难以修改它,但是通过默默无闻来确保安全无论如何都是不可持续的策略。

因此归结为要么在某种程度上信任您的用户(大多数情况下是一个合理的假设),要么设计游戏以便规避时间安排并非易事。

关于javascript - 如何检查 AJAX 请求的真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2017094/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com