Безопасность и программирование (C# и Visual Basic)
При работе с платформой .NET Framework разработчики должны обращать внимание на ключевые проблемы безопасности.В этом обзоре обсуждаются приложения Windows и веб-приложения, а также этапы реализации, отладки и развертывания приложения.
Общие сведения
Visual Studio позволяет контролировать безопасность выполняемых приложений.При использовании платформы .NET Framework о проблемах безопасности необходимо задуматься еще на этапе программирования.Чтобы создать удобные и простые в использовании приложения, следует решить некоторые проблемы безопасности.
Существуют три общих ситуации, в которых необходимо обратить внимание на возможные проблемы безопасности.
Разрешения. Пользователь, запустивший приложение, может отказать приложению в предоставлении каких-либо разрешений.Такая ситуация может возникнуть при запуске приложения из местоположения, для которого пользователь запретил доступ к некоторым ресурсам системы.Например, пользователь может запретить в среде CLR доступ к файлам любому приложению, хранящемуся на сетевом диске.Следует учитывать это при работе и создавать код, который будет аккуратно обрабатывать такие ситуации.Дополнительные сведения см. в разделе Политика безопасности .NET Framework.
Веб-приложения. Необходимо исключить возможность запуска вредоносного кода или повреждения данных на серверах пользователями, обращающимися к веб-приложениям, размещенным на веб-серверах.Дополнительные сведения см. в разделе Безопасность ASP.NET.
Настройка Visual Studio. Уязвимость сервера к атакам вредоносных кодов зависит от настройки Visual Studio.Дополнительные сведения см. в разделе User Rights and Visual Studio.
Защита ресурсов представляет собой процесс, в котором используются различные технологии и который охватывает весь цикл разработки.Тщательная разработка, реализация, тестирование и развертывание приложений помогают создать безопасные приложения.Для защиты приложений можно использовать технологии безопасности ASP.NET, операционной системы и веб-обозревателя.
Отдельные рекомендации по безопасности
Этот список не является исчерпывающим перечнем возможных проблем с безопасностью.В нем описаны некоторые проблемы, часто возникающие у разработчиков на языках Visual Basic и C#.
Убедитесь, что включена проверка переполнения для целых чисел.В C# для этого можно использовать ключевое слово checked или Диалоговое окно "Дополнительные параметры компилятора" (C#).В Visual Basic можно использовать Диалоговое окно "Дополнительные параметры компилятора" (Visual Basic).
Во всех случаях следует использовать для параметров наиболее ограниченные типы данных.Например, при передаче значения методу, описывающему размер структуры данных, следует использовать целое число без знака, а не просто целое число.
Не принимайте решений на основе имен файлов.Имена файлов могут быть выражены различными способами, и тест конкретного файла может быть обойден.
Ни в коем случае не включайте в код приложения пароли или иную секретную информацию.
Обязательно проверяйте входные данные, используемые для генерирования запросов языка SQL.
Проверяйте все входные параметры методов.Предназначенные для использования регулярных выражений методы из пространства имен System.Text.RegularExpressions полезны для проверки правильности формы входных данных, например адресов электронной почты.
Не показывайте информацию, содержащуюся в исключениях: в ней содержатся полезные для совершающего атаку лица подсказки.
Убедитесь, что приложение работает, запустив его с минимально возможными разрешениями.Только некоторые приложения требуют, чтобы пользователь был зарегистрирован в системе как администратор.
Не используйте собственные алгоритмы шифрования.Используйте классы из пространства имен System.Security.Cryptography.
Давайте своим сборкам строгие имена.
Не храните секретную информацию в XML-файлах или иных файлах настроек.
Тщательно проверяйте управляемый код, в который включен машинный код.Убедитесь, что машинный код является безопасным.
Будьте осторожны в случае использования делегатов, переданных приложению извне.
Запустите средство анализа кода среды Visual Studio для своих сборок, чтобы убедиться, что они соответствуют требованиям правил разработки для платформы Microsoft .NET Framework.Это средство также способно найти и предупредить о более чем 200 дефектах кода.Дополнительные сведения см. в разделе Общие сведения об анализе управляемого кода.
Другие источники информации, касающейся безопасности
Подробная информация о создании безопасного и надежного программного обеспечения приведена на следующих сайтах корпорации Майкрософт.
Связанные разделы
Заголовок |
Описание |
---|---|
Обзор функций безопасности .NET Framework и описание методов создания кода для среды с частичным доверием. |
|
Описание средств Visual Studio, помогающих защитить сервер разработки. |
|
Описание объектов, которые служат для защиты ресурсов и операций от несанкционированного использования. |
См. также
Задачи
Примеры обеспечения безопасности в Visual Basic
Основные понятия
Правила написания безопасного кода