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


Рекомендации по безопасности при автоматизации

Обновлен: Ноябрь 2007

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

В целях настоящего описания “уязвимость безопасности” можно определить как ошибку в продукте, которая позволяет злоумышленнику, даже если продукт используется правильно:

  • получить необходимые права в системе пользователя,

  • контролировать, изменять или перенаправлять операцию,

  • нарушать данные,

    либо

  • получать непредоставленное доверие.

ms165617.alert_caution(ru-ru,VS.90).gifВажное примечание.

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

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

Опасные API

С точки зрения безопасности некоторые функции API считаются более опасными, чем другие. Некоторые опасны по своему характеру в зависимости от выполняемых действий. Другие могут представлять опасность в случае неверного вызова или обработки. Смысл в том, что важно изучать недостатки и особенности различных вызываемых функций API, и если они представляют какую-либо угрозу безопасности — обеспечивать их правильное использование.

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

  • неправильная обработка исключений,

  • использование жестко запрограммированных путей,

  • использование жестко запрограммированных строк подключения

    –или–

  • отсутствие проверки учетных сведений пользователей или разрешений.

Чтобы обеспечить защиту своих приложений, важно хорошо понимать вопросы безопасности кода, изучив предмет. Книга Microsoft Press "Написание безопасного кода" и узел рекомендаций по безопасному программированию по адресу https://msdn2.microsoft.com/en-us/library/d55zzx87.aspx являются полезными ресурсами.

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

Возможности безопасности автоматизации

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

Тщательно изучите и следуйте рекомендациям по безопасности .NET перед построением приложений автоматизации.

См. также

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

Ресурсы для создания безопасных приложений

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

Основные понятия безопасности