Простой безопасный способ для Flash в базу данных MySQL - PullRequest
0 голосов
/ 29 декабря 2008

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

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

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

через NetConnection? Есть некоторые выводы: lead-1 , lead-2 .

Cold Fusion? У кого-нибудь есть идеи?


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

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

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

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

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

Ответы [ 8 ]

2 голосов
/ 30 декабря 2008

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

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

2 голосов
/ 21 октября 2010

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

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

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

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

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

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

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

1 голос
/ 03 января 2009

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

1 голос
/ 30 декабря 2008

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

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

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

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

1 голос
/ 30 декабря 2008

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

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

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

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

0 голосов
/ 09 сентября 2012

Доступ к MySQL напрямую из AS3 - проверьте: http://code.google.com/p/assql/

0 голосов
/ 30 декабря 2008

По сути, Flash должен передать имя пользователя + пароль в скрипт PHP для аутентификации ... позже PHP отправит обратно личные данные во Flash, используя GET / POST.

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

Редактировать: PHP> БД MySQL представляется достаточно безопасной. Это просто часть Flash> PHP, которая нуждается в некотором:

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

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

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

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

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

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

Мне нравится хранить всю программную логику, которая потенциально опасна, только на сервере, а НЕ в апплете.

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