我使用SDL用c ++编写了一个游戏。如果用户已登录,游戏目前通过curl发布帖子来更新我的游戏站点的高分。我遇到的问题是帖子提供了在我的服务器上收到帖子的php文件的URL,以及帖子使用的变量。昨晚,来自中国的人发现了这个并创建了5个账号,然后向这些用户发布了高得离谱的高分。有什么方法可以让我更安全吗?
ssl会工作吗?我整个上午都在阅读关于ssl的文章,我得到了curl来验证ssl已经安装,但老实说,我甚至不知道从哪里开始让我的php验证页面使用ssl与我的游戏进行通信。我真的很讨厌整个他的核心功能,因为我已经投入了这么多时间。
此时我正在寻找最简单的解决方案,以阻止某人制作表格并将新的自己的论文发布到php页面。
非常感谢任何帮助。
答案 0 :(得分:1)
您可以通过不仅传递高分,而且传递在PHP端验证的散列版本来添加一小部分安全性。 e.g。
{hs:"2000";hash:'843ed7842a6bd864162022e48b84a668'}
发布到您的PHP脚本,然后检查,
if($hash==md5('secret'.$hs)){
//UPDATE HighScore
}else{
//Discard, flag spammer
}
答案 1 :(得分:1)
最快的解决方案是密切关注高分榜,删除看不见的分数,并将已知作弊者列入黑名单。
但是,对于长期解决方案,您是否可以发送一个玩家时间戳“物理输入”(鼠标点击,按键等)以及高分的列表?
然后,服务器可以使用输入执行某些逻辑(甚至可能通过在服务器上运行的游戏客户端运行该输入)来确定高分是否有效。
如果您的游戏使用随机数,您也必须发送初始随机种子。
一旦你设法实现这一点,你也可以相当容易地创建一个重播系统,这将允许玩家彼此分享他们的游戏重放。
答案 2 :(得分:0)
您可以向数据添加salt,只有c ++上的app知道它,服务器
或者你不能?
答案 3 :(得分:0)
SSL本身不足以阻止人们发布高分。我可以想到几种方法开始: