我有一个Flash应用程序(游戏),它需要将数据传递到php页面以保存用户和用户的分数。但是,我不希望用户能够在不使用应用程序的情况下自行更改分数或初始评分。
最好的方法是什么?
答案 0 :(得分:2)
如果客户端(即闪存)正在跟踪/生成分数,则没有安全的方法可以将分数发送到服务器。无论swf文件能做什么,攻击者都可以模仿。
唯一安全的方法是将每个用户移动或操作发送到服务器。服务器负责游戏的状态并保持分数;客户只是生成动作。
通过这种方法,攻击者无法操纵分数。他仍然可以绕过你的SWF文件,但为了获得高分,他仍然必须做出正确的动作。攻击者可以使机器人智能地进行移动;为了避免你只能通过默默无闻来使用安全性。
答案 1 :(得分:1)
实现md5-hash函数并对分数和用户名进行散列。
然后从Flash加载一个PHP文件,其中包含score,username和md5-hash作为GET参数。 PHP文件通过再次散列值来检查数据。
由于Flash在浏览器中运行,因此可以重新编译,因此您无法100%确定。如果您想完全确定,则必须验证用户对服务器执行的每个步骤。
答案 2 :(得分:0)
您有两项服务。一项服务是游戏服务。另一项服务是评分服务。您需要围绕评分服务设置某种身份验证。然后,您的游戏服务需要一些凭据才能访问此身份验证。
一种方法是使用https围绕您的得分服务,并需要https令牌才能访问它。然后,您的游戏服务可以将该令牌硬编码到游戏本身的服务器端代码中。