клиентского приложения. Необходимо принять решение о том, как и когда
регистрировать пользователей, должна ли быть реализована поддержка различных
типов пользователей (ролей) с разными правами доступа (например, администраторы
и обычные пользователи), и как регистрировать успешные или неудачные попытки
входа пользователя в систему. Учитывайте требования по аутентификации в
автономном режиме или без подключения, где это необходимо.
Используйте интегрированную аутентификацию Windows (Windows Integrated
Authentication) или интегрированное решение аутентификации, если требуется
обеспечить пользователям возможность доступа к множеству приложений по одному
удостоверению или с использованием одних и тех же учетных данных. Если нет
возможности использовать Windows Integrated Authentication, можно работать с
внешним сервисом, предлагающим интегрированную поддержку аутентификации.
Если нет возможности использовать внешний сервис, используйте систему на базе
сертификатов или создавайте собственное решение для своей организации.
Учтите требования по валидации пользовательского ввода и вывода из таких
источников, как интерфейсы сервисов и других приложений. Возможно, придется
создать собственные механизмы проверки или использовать функции валидации
применяемой технологии. Среда разработки Microsoft Visual Studio® Windows Forms
включает элементы управления валидации. В качестве альтернативы можно
использовать инфраструктуру валидации сторонних производителей, такую как
Enterprise Library Validation Application Block, которая обеспечивает возможности
проверки в UI и бизнес-слое в полном объеме. Независимо от выбранного подхода
следует всегда помнить, что валидация данных должна проводиться при любом
пересечении ими границ доверия.
Продумайте, как будет обеспечиваться защита хранящихся в приложении данных, и
таких ресурсов, как файлы, кэши и документы, используемые приложением. Шифруйте
конфиденциальные данные в случаях, когда есть вероятность их разглашения, и
предусмотрите цифровую подпись для предотвращения повреждения или подделки
данных. В приложениях с самыми высокими требованиями к безопасности шифруйте
часто меняющиеся данные, хранящиеся в памяти. Также не забывайте защищать
конфиденциальные данные, передаваемые по сети или каналу связи.
Продумайте стратегию аудита и протоколирования для приложения и то, какие
данные будут включены в эти журналы. Не забывайте защищать конфиденциальные
данные в журналах с помощью шифрования. Для наиболее важных данных, уязвимых
для повреждения и подделки, предусмотрите цифровые подписи.
Вопросы обработки данных
Серверные приложения могут предоставлять данные приложения через Веб-сервис.
Кэширование этих данных на клиенте позволит улучшить производительность и обеспечит
возможность работы в автономном режиме. Также насыщенные клиентские приложения
могут использовать локальные данные. Данные, используемые насыщенными клиентскими
приложениями можно подразделить на две категории: