C# Specific Security Recommendations



This list is not an exhaustive list of potential security problems. It highlights some common issues for C# developers.

· Use the checked keyword to control the overflow-checking context for integral-type arithmetic operations and conversions.

· Always use the most restrictive data type for parameters. For example, when you pass a value to a method that describes the size of a data structure, use unsigned integer rather than integer.

· Do not make decisions based on file names. File names can be expressed in many different ways, and your test for a particular file may be bypassed.

· Never, ever hardcode passwords or other sensitive information into your application.

· Always validate input that is used to generate SQL queries.

· Validate all inputs into your methods. The regular expression methods in the System.Text.RegularExpressions namespace are useful for confirming that input is of the correct form, such as an e-mail address.

· Do not display exception information: it provides any would-be attacker with valuable clues.

· Ensure that your application works while running with the least possible permissions. Few applications require that a user be logged in as an administrator.

· Do not use your own encryption algorithms. Use the System.Security.Cryptography classes.

· Give your assemblies strong names.

· Do not store sensitive information in XML or other configuration files.

· Check managed code that wraps native code carefully. Confirm that the native code is secure.

· Use caution when you use delegates passed from outside your application.

· Run the Visual Studio code analysis tool on your assemblies to ensure compliance with Microsoft .NET Framework Design Guidelines. This tool can also find and warn against over 200 code defects.


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

Безопасность является обязательным аспектом каждого приложения на языке C#, который должен учитываться на каждом этапе разработки, а не только после завершения разработки и реализации.

Рекомендации по безопасности, касающиеся языка C# в отдельности

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

· Ключевое слово checked используется для управления контекстом контроля переполнения при выполнении арифметических операций и преобразований с целочисленными типами.

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

· Не принимайте решений на основе имен файлов. Имена файлов могут быть выражены различными способами, и тест конкретного файла может быть обойден.

· Ни в коем случае не включайте в код приложения пароли или иную секретную информацию.

· Обязательно проверяйте входные данные, используемые для генерирования запросов языка SQL.

· Проверяйте все входные параметры методов. Предназначенные для использования регулярных выражений методы из пространства имен System.Text.RegularExpressions полезны для проверки правильности формы входных данных, например адресов электронной почты.

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

· Убедитесь, что приложение работает, запустив его с минимально возможными разрешениями. Только некоторые приложения требуют, чтобы пользователь был зарегистрирован в системе как администратор.

· Не используйте собственные алгоритмы шифрования. Используйте классы из пространства имен System.Security.Cryptography.

· Давайте своим сборкам строгие имена.

· Не храните секретную информацию в XML-файлах или иных файлах настроек.

· Тщательно проверяйте управляемый код, в который включен машинный код. Убедитесь, что машинный код является безопасным.

· Будьте осторожны в случае использования делегатов, переданных приложению извне.

· Запустите средство анализа кода среды Visual Studio для своих сборок, чтобы убедиться, что они соответствуют требованиям правил разработки для платформы Microsoft .NET Framework. Это средство также способно найти и предупредить о более чем 200 дефектах кода.


Дата добавления: 2019-03-09; просмотров: 218; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!