我正在开发 Flash 游戏的后端,我需要secure数据进入记分板。
该游戏将在许多网站上以横幅广告形式托管,用户将在广告中玩游戏,然后点击进入主网站以保存其详细信息。
目前我正在思考这个问题
- 用户玩游戏并点击提交分数
- 在后台,横幅将分数和原始域发送到主站点上的脚本。
- 该脚本检查域是否是托管广告的有效域之一。
- 如果一切正常,脚本会创建此分数和域的哈希值,并将其与分数一起存储在数据库中。
- 该脚本将哈希值返回给 Flash,Flash 将其拼凑到打开主记分板的 getURL 的查询字符串中
- 记分板页面会检查引荐来源网址以确保它是有效域之一。
- 如果是,则检查数据库中的哈希值是否是有效令牌
- 然后,用户填写详细信息,并根据哈希值更新记录
上次我检查 FLash 没有发送推荐人信息,这给我的计划带来了麻烦。那么,这种 Flash/数据库交互是否已经建立了模式?
在步骤 4 中我应该使用哪种哈希/校验和?这种操作的正确名称是什么,是哈希、校验和还是其他什么?
我知道,作为一种客户端技术,Flash 实际上永远不会那么安全,但在我看来,像上面这样的事情与破解此类应用程序一样困难。
更新:我的主要目标是让人们更难找到将分数添加到数据库的脚本的 URL,并用假分数向其发送垃圾邮件。
谢谢,
格雷格
本质上,您不想验证分数是否来自合法客户端,您想验证客户端是否确实玩过游戏以获得分数。从本质上讲,你所能期望的最好的结果就是人们被要求创建一个人工智能来玩游戏。
您可以尝试以下几件事:
- 将输入记录到游戏中并将其与分数一起发送。然后服务器可以验证分数是否对应于可能的游戏。您还可以通过这种方式检测重复提交。
- 应用速率限制来阻止客户以明显不人道的速度提交分数。根据实际可能达到的分数应用允许分数的上限,并根据每秒操作数等设置下限。
- 使用之前的输入来部分播种伪随机数生成器(假设您使用一个)。这使得客户不太可能稍微改变提交并仍然获得有效的游戏/得分组合。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)