Как лучше всего защитить приложение Flex-BlazeDS?

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

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

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

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


person Lieven Cardoen    schedule 24.02.2010    source источник
comment
Я бы предложил использовать какой-то SSL и аутентификацию, но это может показаться нелепым. :) Если серьезно, нам нужно узнать больше деталей ... вы используете Spring (spring -security хорошо работает с Flex / Blaze) или какой-то другой фреймворк? Вы хотите SSL? Вам нужна страница входа (в стиле jsp) или вход в гибкое приложение?   -  person jsight    schedule 24.02.2010
comment
- Flex войдет в систему, поэтому в RemoteObject я установлю учетные данные - я не знаю, идет ли аутентификация и авторизация с помощью BlazeDS (например, WebORB, а WebORB просматривает BlazeDS для своего продукта) - SSL не требуется - я видел в Интернете ссылки о весенней безопасности, так что я это проверю.   -  person Lieven Cardoen    schedule 24.02.2010


Ответы (1)


Мои 2 цента:

  • У нас есть приложение Flex, и наш экран входа в систему является частью приложения Flex. Мы не используем SSL, но вы можете определить безопасный канал, если он вам нужен (но вы этого не сделаете);
  • We created our own instance of the adapter class on the server (that extends the one that comes with BlazeDS). The idea is that this class would check if the session for which that request belongs to has an authenticated user or not. In the Flex methods/ classes (on the Java side), we used annotations to inform the adapter class about requirements that must be satisfied in order for that method to be called - we call these annotations "FlexService" (for the class) and "FlexMethod" (for a method);
    • The main reason behind this is to avoid a method from being called if the user has not been authenticated before, and we want more granular control than just "block everybody". We have licensing requirements and this library is also responsible for checking if the user has a license and if that license still valid for each request.
  • Не забудьте хешировать свой пароль перед сохранением его в базе данных и сравнивать только хеш. Вы можете хешировать его один раз в клиенте Flex (чтобы открытый пароль никогда не отправлялся на сервер) и снова хешировать хешированное значение, прежде чем сохранять его в базе данных (так что, если кто-то получит хешированные пароли вашей базы данных, он все равно не сможет взломать в вашу систему, потому что у него не будет исходного значения хеширования, которое было отправлено от клиента Flex).

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

person Ravi Wallau    schedule 24.02.2010