Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
500
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

Вопросы безопасности

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

При проектировании стратегии обеспечения безопасности руководствуйтесь следующими рекомендациями:

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

Используйте интегрированную аутентификацию Windows (Windows Integrated Authentication), механизм единой регистрации (single sign-on, SSO) или интегрированное решение аутентификации, если требуется обеспечить пользователям возможность доступа к множеству приложений по одному удостоверению или с использованием одних и тех же учетных данных. Если нет возможности использовать Windows Integrated Authentication, можно применить внешний сервис, предлагающий интегрированную поддержку аутентификации. Если нет возможности использовать внешний сервис, используйте систему на базе сертификатов или создавайте собственное решение для своей организации.

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

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

Вопросы обработки данных

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

вавтономном режиме. Данные приложения можно разделить на две основные категории:

Справочные данные только для чтения. Это данные, которые меняются нечасто и используются клиентом для справочных целей, такие как, например, каталог продукции. Храните ссылочные данные на клиенте, чтобы сократить объемы данных,

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

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

Вопросы выбора технологий

Далее приводится руководство по применению Silverlight и Microsoft Windows Communication Foundation (WCF). На момент написания данного документа были выпущены версии WCF 3.5 и Silverlight 3.0. Данные рекомендации помогут при выборе и реализации соответствующей технологии.

Версии и целевые платформы

На момент выхода данного руководства Silverlight for Mobile был объявлен и находился в разработке, но еще не был выпущен.

На текущий момент посредством подключаемого модуля технологию Silverlight

поддерживают браузеры Safari, Firefox и Microsoft Internet Explorer. Через эти браузеры Silverlight поддерживает Mac и Windows. В 2008 году было объявлено о поддержке для Windows Mobile. Реализация Silverlight с открытым исходным кодом под названием Moonlight обеспечивает поддержку систем Linux и Unix/X11.

Silverlight поддерживает языки разработки C#, Iron Python, Iron Ruby и Visual Basic®

.NET. Большая часть XAML-кода также может выполняться как на WPF-, так и на

Silverlight-хостах.

В Silverlight 2.0 необходимо реализовывать собственный код валидации ввода и данных. Silverlight 3.0 поддерживает валидацию на основании исключений через привязку данных. Обратитесь к документации, чтобы выяснить, какие варианты валидации доступны в текущей версии.

Безопасность

Криптографические API .NET доступны в Silverlight и должны применяться при хранении и передаче на сервер конфиденциальных данных, если они еще не зашифрованы с использованием другого механизма шифрования.

Для каждого зарегистрированного пользователя Silverlight создает отдельный файл журнала. Он не может вести один журнал для всего компьютера.

Silverlight не скрывает загруженные модули, они могут быть декомпилированы с извлечением логики программы.

Сетевое взаимодействие

Silverlight поддерживает только асинхронное взаимодействие с Веб-сервисами.

Silverlight поддерживает только основные HTTP-привязки. WCF в .NET 3.5 поддерживает основные HTTP-привязки, но без включения безопасности по умолчанию. Для защиты взаимодействий сервисов должна быть включена, по крайней мере, безопасность на транспортном уровне.

Silverlight поддерживает два формата файлов для вызова сервисов, которые располагаются в разных доменах с источником текущей страницы. Можете использовать либо специальный файл для Silverlight, ClientAccessPolicy.xml, либо файл CrossDomain.xml, совместимый с Adobe Flash. Разместите файл в корневом каталоге сервиса(-ов), к которому(-ым) должен выполнять доступ Silverlight-клиент.

Для передачи больших объемов данных с сервера используйте в Silverlight-

приложении ADO.NET Data Services.

Из-за модели безопасности браузера Silverlight в настоящее время не поддерживает ошибки SOAP, предоставляемые сервисами. Сервисы должны возвращать исключения клиенту, используя другой механизм.

Элементы управления

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

Используйте безоконный режим работы Silverlight, если желаете размещать видимое HTML-содержимое и элементы управления поверх Silverlight-приложения.

Silverlight позволяет вводить дополнительное поведение в существующие реализации элементов управления. Используйте этот подход вместо создания подклассов элементов управления.

Silverlight выполняет сглаживание всех компонентов UI, поэтому учтите рекомендации по привязке элементов UI к целочисленным значениям пикселов.

Хранение

В качестве локального механизма хранения для Silverlight используется изолированное хранилище клиентского компьютера. Его исходный максимальный размер – 1 МБ. Максимальный размер хранилища не ограничен, но в Silverlight размер хранилища может быть увеличен только пользователем по запросу приложения.

Соседние файлы в папке ООП