2010-02-24 4 views
1

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

UPDATE после вопроса jsight:

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

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

+0

Я бы предложил использовать SSL и аутентификацию, но это может звучать snarky. :) Более серьезно, нам нужно знать более подробную информацию ... используете ли вы весну (весна-безопасность будет хорошо работать с Flex/Blaze) или какой-то другой каркас? Вы хотите SSL? Вам нужна страница входа в систему (jsp-style) или логин в вашем приложении flex? – jsight

+0

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

ответ

4

Мои 2 цента:

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

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

Смежные вопросы