Можно ли сделать это приложение Flex / Flash безопасным? - PullRequest
2 голосов
/ 05 марта 2010

Я вернулся с другим вопросом безопасности Flex / Flash. Я уже получил некоторую помощь от сообщества по этой теме, но я все еще не совсем уверен, что это лучший способ сделать.

Вот в чем дело. Гибкое веб-приложение, много пользователей (более 1000), индивидуальная настройка приложения в зависимости от группы пользователей. Могу ли я сделать эту вещь безопасной ... или более безопасной.

На данный момент, когда пользователь приходит в приложение, возможна только одна конфигурация, но для следующей версии мы внедрили протокол многоконфигурации, таким образом:
1. Пользователь подключается к Default.aspx, код сервера обрабатывает учетные данные Windows (если они находятся в интрасети) и выдает правильный файл конфигурации xml.
2. Приложение flex загружается с файлом xml conf в качестве flashvar, а затем приложение «собирает» себя с содержимым файла xml.

Как мы знаем, поскольку это гибкое приложение, SWF-файл загружается на клиентский компьютер и XML-файл тоже. Если к одному приложению подключается более одного пользователя с одного компьютера, он может увидеть другой xml-файл во временной папке Windows.

Текущий каталог приложения выглядит так:

Web site
    |-> default.aspx
    |-> index.swf 
    |-> configAdmin.xml 
    |-> configUserType1.xml 
    |-> configUserType2.xml 
    |-> com 
         |-> a lot of swf and xml files

Сначала я подумал о создании другого каталога (без прав на чтение для клиента), содержащего все XML-файлы конфигурации, выбора правильного, копирования его клиенту и последующего удаления. Но, похоже, я должен сообщить пользователю об этом при загрузке / удалении контента на его компьютере ...

У меня заканчиваются идеи, поэтому я надеюсь, что у вас есть замечательные идеи. Это некоторые недостатки дизайна (в том, как приложение собирается, а не во Flash: p), пожалуйста, поделитесь. Я всегда с нетерпением жду улучшения.

Спасибо

Обновление: В браузере Flash / Flex (без AIR то есть) не позволяет удалять файл локально без вывода сообщений (на клиентском компьютере, где находится приложение). Также пока невозможно получить данные сеанса.

Ответы [ 3 ]

1 голос
/ 07 марта 2010

Я бы предложил сохранить файл XML, зашифрованный (симметричным) ключом, который хранится в контексте сеанса. Это может быть пример последовательности событий:

  • Вход в систему: создать симметричный ключ для сеанса, сохранить его в памяти, связанной с сеансом
  • Загрузить конфигурационный XML, зашифровать его ключом сеанса и сохранить под уникальным именем. Сохранить это имя в сеансе

Когда приложение Flex запрашивает файл конфигурации, выполните следующие действия:

  • Поиск имени файла в сеансе.
  • Отправка зашифрованного файла в Flex

Приложение Flex получает зашифрованный файл. Затем он запрашивает у сервера ключ дешифрования (используя HttpService или какой-либо другой вызов AJAX), дешифрует файл с использованием as3crypto и использует его.

Вы должны удалить временный зашифрованный файл с сервера при выходе из системы.

При таком подходе ключ генерируется на стороне сервера в памяти и никогда не записывается на диск. Ключ действителен только для этого сеанса входа в систему и бесполезен для будущих сеансов.

1 голос
/ 29 марта 2010

Спасибо всем, кто принимал участие в этой дискуссии. Вот что я сделал.

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

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

1 голос
/ 05 марта 2010

Чтобы решить эту проблему, вам нужно создать новый файл aspx, назовем его file_loader.aspx. Этот файл aspx будет отвечать за контроль доступа к любому плоскому файлу на вашем сервере. Все файлы, такие как XML-файлы, должны быть перемещены за пределы веб-корня. Когда пользователь подключается и входит в систему, веб-приложение должно знать, кто он и к каким файлам он имеет доступ. Вы можете создать таблицу в базе данных для этого. В этой таблице будет указан путь к XML-файлу, а также «владелец» или список владельцев. Эта таблица должна проверяться каждый раз, когда приложение flash / flex хочет получить новый файл XML из file_loader.aspx.

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