Вкратце мой проект состоит из:
- Защищенный веб-сервис RESTful API (размещенный на Heroku), обрабатывающий запросы и ответы для базы данных. Он принимает и возвращает данные JSON
- A Unity desktop application, which doubles as a Twitch API chat bot, and communicates with the webservice to update the state of the game, as well as the state of the database.
- IMPORTANT: This game is meant to be run by Twitch streamers, and played by users in Twitch chat
Итак, мой вопрос:... Несмотря на то, что мой веб-сервис защищен, что я могу сделать, чтобы кто-то не перепроектировал мое приложение Unity, чтобы выяснить, как правильно общаться с моим веб-сервером?
Зашифрованный HTTP-трафик останавливает перехват пакетов, но является спорным сервисом, если вы все еще можете использовать те же методы, которые приложение использует для взаимодействия с данными. Возможно, я слишком параноик, но есть множество инструментов есть, которые специально предназначены для проектов Unity и C#, так что это действительно не потребует особых усилий.
Одна из идей, которые у меня были, заключалась в том, чтобы использовать Twitch API для проверки того, активно ли пользователь транслирует игру, и разрешать им запускать игру только в том случае, если веб-служба не может найти повторяющийся IP-адрес в база данных с установленным флагом isStreaming. Теоретически это работает... но на практике любой может настроить фальшивую учетную запись Twitch и фальшивый или «пустой» поток на своем компьютере, а затем запустить какой-нибудь реконструированный код из игры.
Есть ли что-нибудь еще, что я мог бы сделать, чтобы свести к минимуму возможность взаимодействия хакера с моей базой данных?