Простой безопасный способ для базы данных Flash для MySQL

Любой простой, но безопасный скрипт доступен для Flash> MySQL DB интеграции? Мне нужно что-то для БД входа.

Обмен переменными с PHP хорош и прост, но явно небезопасен.

через Remoting? У меня установлены компоненты удаленного доступа Flash 8 , а также некоторые идеи: идея-1 , идея-2 .

через NetConnection? Есть несколько отведений: свинец-1 , свинец-2 .

Холодный синтез? У кого-нибудь есть идеи?


Менее вероятные решения:

  • через XML? Кто-нибудь знает, как использовать XML для подключения к БД? (AS2 или AS3)

  • AMF-PHP невозможен по соображениям безопасности (скрипт установлен на корне сервера)

  • Java Server ras специально установлен на сервере.

Изменить: Шифрование должно сделать решение PHP более жизнеспособным, хотя оно предлагает только базовую защиту для базы данных входа в систему с высокой степенью защиты. См. Также: SO: 1 , 2 , 3 , Adobe: 4 .

Afaik невозможно разговаривать с сервером MySQL напрямую через ActionScript (если только кто-то не написал пакет, который фактически избавит вас от чистых вещей, но я еще не видел его).

Могу ли я также отметить, что ваше замечание о «небезопасности из-за PHP» на самом деле не так точно? Это еще хуже, когда вы на самом деле все делаете из апплета: в наши дни арахис декомпилирует .SWF, и тогда у них даже будут данные для входа в вашу базу данных.

Я думаю, поскольку Ристон предположил, что лучше всего использовать класс URLRequest.

То, что я обычно делаю, это передать текущий идентификатор сеанса php для апплета, чтобы я мог включить этот и IP-адрес пользователя в первоначальный запрос апплета. На сервере я проверяю, действительно ли ip / session действительно активен в таблице сеанса и соответствует. Если это так, пользователь получает своего рода токен команды, который позволяет ему выполнять запросы, которые, в свою очередь, могут выполнять ваши обновления базы данных.

Если вы все это делаете по SSL-соединению, вы довольно безопасны. И да, вы должны хранить PHP-скрипты на сервере, но сложнее получить источник для них, чем просто декомпилировать апплет и извлечь все 🙂

Мне нравится держать всю программную логику потенциально опасной только на сервере, а не в апплете.

Независимо от того, используете ли вы Flash или PHP, вы все еще используете технологию HTML / specificaion для создания GET / POST, поэтому использование Flash так же безопасно (или небезопасно), как использование PHP, Perl, CGI и т. Д.

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

Проверьте AS3crypto – http://code.google.com/p/as3crypto/ – это отличная библиотека для шифрования.

1) Создайте 1024-битный (или более высокий, в зависимости от вашей безопасности) RSA общедоступные / закрытые ключи.

2) Сохраните открытый ключ в вашем swf-файле (это безопасно, даже если кто-то декомпилирует ваш swf).

3) Храните секретный ключ в безопасном месте на сервере.

3) Используя открытый ключ и библиотеку AS3crypto, зашифруйте любые данные, отправляемые из swf, прежде чем отправлять их на сервер.

4) Как только данные поступают на сервер, расшифруйте его с помощью закрытого ключа, к которому только вы имеете доступ.

Подсказка – это хорошая идея хешировать время передачи данных, чтобы кто-то не выдавал одни и те же зашифрованные данные для доступа.

Раньше я делал Flex-> DB, используя веб-службы ASP.NET через SSL для входа и т. Д. Flash должен иметь возможность разговаривать с любой веб-страницей через https, будь то ASP.NET, PHP или любое другое приложение сервер.

Можете ли вы уточнить требования к «базе данных входа в систему с высоким уровнем безопасности»? Что было бы идеальным решением для вас?

И ColdFusion 8 работает также на Linux, Macintosh и Solaris, хотя я никогда не использовал CF сам.

http://www.adobe.com/products/coldfusion/systemreqs/

Прежде всего, если вы беспокоитесь о безопасности соединения, не отправляйте ему пароль: всегда используйте вместо него хэш. Лично я никогда не оставляю пароль в обычном тексте на мгновение дольше, чем это необходимо.

И для остальных, в основном, то, что я сказал в своем предыдущем ответе: во первом «аутентификационном» вызове я также передал бы идентификатор сеанса для обычного использования PHP. На сервере вы проверяете этот идентификатор в таблице сеансов и проверяете, поступает ли POST, содержащий данные, из IP-адреса, связанного с этим сеансом. Затем вы проверяете имя пользователя и хеш, которые были указаны, если все это правильно, вы можете быть уверены, что пользователь – это тот, кто они говорят.

Ключ к этому – использование функций session _…. в PHP. Я обязательно сохраню идентификатор сеанса и соответствующий IP-адрес (который вы можете получить из $ _SERVER ['REMOTE_ADDR'] ) в моей таблице сеансов. Таким образом, вы можете проверить, соответствует ли идентификатор sessionID и IP, когда апплет вызывает ваш сервер, добавив немного дополнительной безопасности.

Во всяком случае, в наши дни ничего не безопасно, и я тоже не профессионал в области безопасности, поэтому есть гораздо лучшие решения. Вопрос: сколько усилий вы готовы инвестировать в него?

В коде google есть проект, в котором вы можете напрямую подключиться из своего swf-фильма к базе данных MySQL, через подключение к сокету TCP http://code.google.com/p/assql/ . Я никогда не пробовал этого, но это звучит интересно и очень неуверенно.

В принципе, Flash должен передать данные Username + Password в скрипт PHP для аутентификации … позже PHP отправит личные данные во Flash с помощью GET / POST.

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

Редактировать: PHP> MySQL DB кажется достаточно безопасным. Его просто часть Flash> PHP, которая нуждается в некоторых:

  • шифрование (Hashing?)
  • безопасное соединение (HTTPS или HTTP через SSL?)
  • или лучший, более прямой подход к БД MySQL (Remoting?).

Доступ к MySQL непосредственно из AS3 – проверьте: http://code.google.com/p/assql/