简而言之,我的项目包括:
- 一个安全的 RESTful API Web 服务(托管在Heroku上),处理数据库的请求/响应。它接受并返回 JSON 数据
- 一个 Unity 桌面应用程序,兼作 Twitch API 聊天机器人,并与网络服务通信以更新游戏状态以及数据库状态。
- 重要提示:此游戏旨在由 Twitch 主播运行,并由 Twitch 聊天中的用户玩
所以我的问题是......即使我的 Web 服务是安全的,我能做些什么来确保有人不会简单地对我的 Unity 应用程序进行逆向工程以弄清楚如何与我的 Web 服务器正确通信?
加密的 HTTP 流量会停止数据包嗅探,但如果您仍然可以使用应用程序用于与数据交互的相同方法,则它是一种模拟服务。也许我太偏执了,但是那里有很多 专门针对 Unity 和 C# 项目 的工具 ,所以真的不需要太多努力。
我的一个想法是使用 Twitch API 来检查用户是否正在积极地流式传输游戏,并且仅当 Web 服务在数据库中找不到带有“isStreaming”标志的重复 IP 地址时才允许他们启动游戏放。这在理论上可行……但在实践中,任何人都可以在他们的机器上设置一个假的 Twitch 帐户和一个假的或“空白”流,然后从游戏中运行一些逆向工程代码。
我还能做些什么来最大程度地减少黑客与我的数据库交互的能力吗?