Любой простой, но безопасный скрипт доступен для Flash> MySQL DB интеграции? Мне нужно что-то для БД входа.
Обмен переменными с PHP хорош и прост, но явно небезопасен.
через Remoting? У меня установлены компоненты удаленного доступа Flash 8 , а также некоторые идеи: идея-1 , идея-2 .
через NetConnection? Есть несколько отведений: свинец-1 , свинец-2 .
Холодный синтез? У кого-нибудь есть идеи?
Менее вероятные решения:
через XML? Кто-нибудь знает, как использовать XML для подключения к БД? (AS2 или AS3)
AMF-PHP невозможен по соображениям безопасности (скрипт установлен на корне сервера)
Изменить: Шифрование должно сделать решение 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 сам.
Прежде всего, если вы беспокоитесь о безопасности соединения, не отправляйте ему пароль: всегда используйте вместо него хэш. Лично я никогда не оставляю пароль в обычном тексте на мгновение дольше, чем это необходимо.
И для остальных, в основном, то, что я сказал в своем предыдущем ответе: во первом «аутентификационном» вызове я также передал бы идентификатор сеанса для обычного использования 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, которая нуждается в некоторых:
Доступ к MySQL непосредственно из AS3 – проверьте: http://code.google.com/p/assql/