我的一个朋友为我的网站制作了一个 Flash 游戏。游戏使用 $_POST['points'] 中的点数向 /game/p00ints.php 发出请求。
但是,我猜黑客可以很容易地找出如何获得更多积分,那么,我或我的朋友如何修复这个安全漏洞呢?
此致,
埃里克·佩尔松
解决这个问题的方法是在服务器上进行所有点计算并让客户端发送原始输入(例如按住左箭头键 1 秒,输入键按下,按住鼠标左键 2 秒等)。即便如此,攻击者仍然可以编写机器人来绕过您的 Flash 客户端(但机器人必须发送原始输入)。我知道实现这一点很复杂,但我认为这是最安全的解决方案。
将私钥添加到 Flash 文件可能足以成为休闲游戏的障碍。但是,它没有提供真正的安全性,因为有人可以轻松地反编译 SWF。
快速解决方案 - 添加一些校验和作为第二个参数,例如 md5("secretword"+md5(points))。这将使黑客的生活更加艰难,希望他们不会打扰。
我认为没有绝对 100% 安全的解决方案,因为可以反编译 flash。