Как мне безопасно привязать мой проект AS3 / Flash к базе данных? - PullRequest
1 голос
/ 27 марта 2012

Я создаю игру для вирусной маркетинговой кампании, где примерно один из 100 игроков получит доступ к QR-коду для какой-то эксклюзивной вещицы.Игра потребует извлечения и извлечения информации из базы данных, поскольку игровая среда со временем будет «расти».

Я еще не решил, как это сделать, но у меня было 2 идеи, каждая сих проблемы:

решение 1: подключить SWF к базе данных

проблема: я уже декомпилировал SWF, и это на удивление легко.Как мне защитить учетные данные моей базы данных от этого?

решение 2: подключить SWF-файл к сценариям .php, которые запрашивают базу данных.Таким образом, мои учетные данные соединения с базой данных находятся в безопасности в файле php.

беспокойство: Однако как мне тогда убедиться, что скрипт PHP не доступен для специального скрипта?Кто-нибудь может получить URL-адрес php из источника SWF и просто получить к нему прямой доступ, минуя флэш-приложение.

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Вы должны понять одну вещь.
Все, что может быть на стороне клиента, и если деньги будут вовлечены, вероятно, будет взломано.

С учетом вышесказанного, безопасность касается слоев, чем больше уровней задействовано, тем сложнее его взломать.
Есть много методов, которые вы можете использовать и комбинировать, чтобы вывести из себя среднего хакера SWF.

Первое, с чего я бы начал, никогда не хранить конфиденциальную информацию на клиенте. (IE: серверные SWF)
Если у вас есть данные, их можно получить / изменить.

Далее я бы зашифровал все данные, отправленные в и из SWF, с помощью открытого ключа. Срок действия этого ключа часто истекает. Чтобы получить ключ, SWF должен будет передать учетные данные пользователя (логин).
На стороне сервера вы можете отслеживать пользователя через сеанс.

Вы можете добавить поддержку сокетного соединения с постоянным соединением
httsp, SSL, TSL
И еще много, много вариантов на выбор.

Выбор за вами.

Реальный вопрос, однако, в том, как далеко вы хотите пойти.

1 голос
/ 27 марта 2012

Я бы сразу исключил Решение 1 только по той причине, которую вы указали.

Итак, давайте просто поговорим о том, как обойти решение проблемы 2.

То, что я вижу, является распространенным способом справиться с этим, когда серверный скрипт обрабатывает генерацию этих специальных элементов. Если вы посмотрите на множество онлайн-флеш-игр, я уверен, что вы согласитесь, что Flash отвечает за пользовательский интерфейс почти полностью, а остальное обрабатывает серверная часть. Это, конечно, ограничивает тип игр, которые вы можете делать таким образом.

Есть и другой способ. Если бы вы могли создать свой SWF-файл из своего бэкэнда, вы могли бы хранить данные сеанса, которые будут полезны только в течение ограниченного времени. Конечно, это не должен быть тот же swf, в котором хранятся все ваши игровые ресурсы, а только классы, необходимые для взаимодействия с бэкэндом. Динамическая генерация swf-взаимодействия с сервером позволила бы хранить важные данные сеанса и каждый раз шифровать их другим ключом, так что, если кто-то взломает его, это ограничит то, что он может с ним сделать, поскольку новый сеанс потребует новых учетных данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...