Каков наилучший способ защитить приложение Flex-BlazeDS? - PullRequest
1 голос
/ 24 февраля 2010

Как лучше всего защитить приложение Flex-BlazeDS? Я погуглил, что было найдено несколько решений.

ОБНОВЛЕНИЕ после вопроса от jsight:

  • Flex вошел бы в систему, поэтому в RemoteObject я установлю учетные данные
  • Я не знаю, придет ли аутентификация и авторизация с BlazeDS (например, WebORB и WebORB посмотрели на BlazeDS для их продукта)
  • SSL не требуется
  • Я видел некоторые ссылки в Интернете, посвященные весенней безопасности, поэтому я проверю это.

Аутентификация будет выполняться путем сравнения логина пользователя с паролем и базой данных.

1 Ответ

4 голосов
/ 24 февраля 2010

Мои 2 цента:

  • У нас есть приложение Flex, и наш экран входа в систему является частью приложения Flex. Мы не используем SSL, но вы можете определить безопасный канал, если он вам нужен (но вам не нужен);
  • Мы создали наш собственный экземпляр класса адаптера на сервере (который расширяет тот, который поставляется с BlazeDS). Идея состоит в том, что этот класс будет проверять, имеет ли сеанс, к которому принадлежит этот запрос, аутентифицированного пользователя или нет. В методах / классах Flex (на стороне Java) мы использовали аннотации для информирования класса адаптера о требованиях, которые должны быть выполнены для вызова этого метода - мы называем эти аннотации «FlexService» (для класса) и « FlexMethod "(для метода);
    • Основная причина этого заключается в том, чтобы избежать вызова метода, если пользователь не был ранее аутентифицирован, и мы хотим более детального контроля, чем просто "заблокировать всех". У нас есть лицензионные требования, и эта библиотека также отвечает за проверку того, есть ли у пользователя лицензия и остается ли эта лицензия действительной для каждого запроса.
  • Не забудьте хешировать свой пароль перед сохранением в базе данных и сравнивать только хеш. Вы можете хешировать его один раз в клиенте Flex (чтобы открытый пароль никогда не отправлялся на сервер) и снова хэшировать значение хеширования, прежде чем сохранить его в базе данных (так что, если кто-то получит хешированные пароли вашей базы данных, он все равно не сможет взломать в вашу систему, потому что у него не будет исходного хэшированного значения, которое было отправлено из клиента Flex).

Я почти уверен, что получу некоторые отрицательные отзывы, если BlazeDS реализует все вышеперечисленное, но мне не понравилось то, что я обнаружил, что является родным для него, и я подумал, что использование аннотаций было хорошим решением, особенно потому, что мы были в любом случае, используя аннотации, чтобы пометить методы, которые были методами BlazeDS (поэтому IntelliJ перестанет беспокоить нас о методах, которые нигде не вызываются).

...