Поделиться через


Безопасность и программирование (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

Обзор функций безопасности .NET Framework и описание методов создания кода для среды с частичным доверием.

Помощь программисту в создании безопасных приложений

Описание средств Visual Studio, помогающих защитить сервер разработки.

Права доступа к коду и управление доступом для кода

Описание объектов, которые служат для защиты ресурсов и операций от несанкционированного использования.

См. также

Задачи

Примеры обеспечения безопасности в Visual Basic

Основные понятия

Безопасность в Visual Studio

Правила написания безопасного кода

Другие ресурсы

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

Безопасность ASP.NET