Javascript 验证从WebApp发送到Web服务的数据的有效性

Javascript 验证从WebApp发送到Web服务的数据的有效性,javascript,security,web-applications,Javascript,Security,Web Applications,我正在构建一个WebApp,它通过web服务连接到我的服务器。 使用webapp的用户(没有登录)可以将他们的分数发送到 服务器 代码主要是用javscript编写的,因此任何人都可以阅读 正如我所知,没有100%保证的方法来做这件事,我只是在寻找想法 如何让用户尽可能难以发送虚假分数 想法? 10倍 编辑 服务器端web服务是托管在IIS上的asmx(.net)web服务。 我可以根据需要对其进行修改。我认为最好的办法是在服务器端使用webservice调用生成guid,并将其传递回服务器端。

我正在构建一个WebApp,它通过web服务连接到我的服务器。 使用webapp的用户(没有登录)可以将他们的分数发送到 服务器

代码主要是用javscript编写的,因此任何人都可以阅读

正如我所知,没有100%保证的方法来做这件事,我只是在寻找想法 如何让用户尽可能难以发送虚假分数

想法? 10倍

编辑

服务器端web服务是托管在IIS上的asmx(.net)web服务。
我可以根据需要对其进行修改。

我认为最好的办法是在服务器端使用webservice调用生成guid,并将其传递回服务器端。这将成为您的会话令牌。它存储在数据库或服务器的缓存中

每个后续调用都需要将令牌传递回服务器,服务器将验证令牌。如果他们传递了一个错误的令牌,你就不会更新

这只会确保调用来自正确的进程。他们将无法通过一次呼叫来欺骗某个进程的条目(你似乎在谈论一个游戏?),只有有限数量的交互点,你可以记录每个用户的交互并回放,以检查它是否在服务器端产生了一定的分数(实时或稍后出现可疑分数)

否则(对于有太多交互点的实时动作游戏来说,这通常是不切实际的),你就无能为力了。你可以让游戏对它提交的信息进行数字签名。。。但是,如果您将完整的代码(包括签名密钥)提供给客户端,攻击者仍然很容易获得密钥并签署无效分数


在这一点上,您陷入了一场模糊处理的军备竞赛——为了防止攻击者获取密钥,您能使客户端代码变得不可读和难以破解,这在多大程度上?你永远也赢不了这场比赛,只能吓阻随意的攻击者。最后,您必须保护整个客户端进程不受更改,以阻止所有其他形式的欺骗(例如使用Firebug更改分数或寿命等变量)。

请提供有关服务器端的更多信息。您使用的是什么框架?“发送虚假分数”与安全发送信息无关。即使它是安全的,你仍然会得到错误的分数。也许验证数据的有效性更准确。编辑问题和标题。