Меню Закрыть

Persist security info true

Содержание

После определения источника данных мы можем к нему подключаться. Для этого создадим проект простого консольного приложения.

Первым делом нам надо определить строку подключения, предоставляющая информацию о базе данных и сервере, к которым предстоит установить подключение:

При использовании различных систем управления базами данных, различных провайдеров данных .NET строка подключения может отличаться. Даже для подключения одной и той же базы данных строка подключения может меняться в зависимости от обстоятельств.

Строка подключения представляет набор параметров в виде пар ключ=значение . В данном случае для подключения к ранее созданной базе данных usersdb мы определяем строку подключения из трех параметров:

Data Source : указывает на название сервера. По умолчанию это ".SQLEXPRESS". Поскольку в строке используется слеш, то в начале строки ставится символ @. Если имя сервера базы данных отличается, то соответственно его и надо использовать.

Initial Catalog : указывает на название базы данных на сервере

Integrated Security : устанавливает проверку подлинности

Жесткое кодирование строки подключения (то есть ее определение в коде приложения), как правило, редко используется. Гораздо более гибкий путь представляет определение ее в специальных конфигурационных файлах приложения. В проектах десктопных приложений это файл App.config , а в веб-приложениях это в основном файл Web.config . Хотя приложение также может использовать другие способы определения конфигурации.

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

Изменим его, добавив определение строки подключения:

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

Каждая строка подключения имеет название, определяемое с помощью атрибута name . В данном случае строка подключения называется "DefaultConnection". Название может быть произвольное.

Атрибут connectionString собственно хранит строку подключения, то есть весь тот текст, который мы выше определяли в методе Main. И третий атрибут providerName задает пространство имен провайдера данных. Так как мы будем подключаться к базе данных MS SQL Server, то соответственно мы будем использовать провайдер для SQL Server, функциональность которого заключена в пространстве имен System.Data.SqlClient.

Теперь получим эту строку подключения в приложении:

Прежде всего чтобы работать с конфигурацией приложения, нам надо добавить в проект библиотеку System.Configuration.dll .

С помощью объекта ConfigurationManager.ConnectionStrings["название_строки_подключения"] мы можем получить строку подключения и использовать ее в приложении.

Параметры строки подключения

Application Name : название приложения. Может принимать в качестве значения любую строку. Значение по умолчанию: ".Net SqlClient Data Provide"

AttachDBFileName : хранит полный путь к прикрепляемой базе данных

Connect Timeout : временной период в секундах, через который ожидается установка подключения. Принимает одно из значений из интервала 0–32767. По умолчанию равно 15.

В качестве альтернативного названия параметра может использоваться Connection Timeout

Data Source : название экземпляра SQL Servera, с которым будет идти взаимодействие. Это может быть название локального сервера, например, "EUGENEPC/SQLEXPRESS", либо сетевой адрес.

Читайте также:  3000 Кбит с в мбит с

В качестве альтернативного названия параметра можно использовать Server , Address , Addr и NetworkAddress

Encrypt : устанавливает шифрование SSL при подключении. Может принимать значения true , false , yes и no . По умолчанию значение false

Initial Catalog : хранит имя базы данных

В качестве альтернативного названия параметра можно использовать Database

Integrated Security : задает режим аутентификации. Может принимать значения true , false , yes , no и sspi . По умолчанию значение false

В качестве альтернативного названия параметра может использоваться Trusted_Connection

Packet Size : размер сетевого пакета в байтах. Может принимать значение, которое кратно 512. По умолчанию равно 8192

Persist Security Info : указывает, должна ли конфиденциальная информация передаваться обратно при подключении. Может принимать значения true , false , yes и no . По умолчанию значение false

Workstation ID : указывает на рабочую станцию — имя локального компьютера, на котором запущен SQL Server

Password : пароль пользователя

User ID : логин пользователя

Например,если для подключения необходим логин и пароль, то мы можем их передать в строку подключения через параметры user id и password :

Защита доступа к источникам данным — одна из важнейших целей защиты приложения. Protecting access to your data source is one of the most important goals when securing an application. Строка соединения представляет собой потенциальную уязвимость, если она не защищена. A connection string presents a potential vulnerability if it is not secured. Сохранение сведений о соединении в виде простого текста или сохранение их в памяти представляет угрозу безопасности всей системы. Storing connection information in plain text or persisting it in memory risks compromising your entire system. Строки подключения, внедренные в исходный код, можно прочитать с помощью программы Ildasm. exe (ДИЗАССЕМБЛЕР IL) , чтобы просмотреть промежуточный язык MSIL в скомпилированной сборке. Connection strings embedded in your source code can be read using the Ildasm.exe (IL Disassembler) to view Microsoft intermediate language (MSIL) in a compiled assembly.

Уязвимые места системы безопасности, связанные со строками соединения, могут возникать в зависимости от используемого типа проверки подлинности, способа сохранения строк соединения в памяти или на диске, и методов, используемых для их конструирования Security vulnerabilities involving connection strings can arise based on the type of authentication used, how connection strings are persisted in memory and on disk, and the techniques used to construct them at run time.

Использование проверки подлинности Windows Use Windows Authentication

Чтобы ограничить доступ к источнику данных, необходимо защитить сведения о безопасном соединении, например, идентификатор пользователя, пароль и имя источника данных. To help limit access to your data source, you must secure connection information such as user ID, password, and data source name. Во избежание раскрытия сведений о пользователях рекомендуется использовать проверку подлинности Windows (иногда называемую встроенной безопасностью) везде, где это возможно. In order to avoid exposing user information, we recommend using Windows authentication (sometimes referred to as integrated security) wherever possible. Проверка подлинности Windows указывается в строке соединения с помощью ключевых слов Integrated Security или Trusted_Connection , что исключает необходимость указывать идентификатор пользователя и пароль. Windows authentication is specified in a connection string by using the Integrated Security or Trusted_Connection keywords, eliminating the need to use a user ID and password. Когда используется проверка подлинности Windows, пользователей проверяет операционная система Windows, а доступ к ресурсам сервера и базы данных определяется предоставлением разрешений пользователям и группам Windows. When using Windows authentication, users are authenticated by Windows, and access to server and database resources is determined by granting permissions to Windows users and groups.

Читайте также:  Postgresql psql подключение к базе

В ситуациях, когда невозможно использовать проверку подлинности Windows, необходимо проявлять дополнительную осторожность, так как учетные данные пользователя представлены в строке соединения. For situations where it is not possible to use Windows authentication, you must use extra care because user credentials are exposed in the connection string. В приложении ASP.NET можно настроить учетную запись Windows как фиксированное удостоверение, которое используется для подключения к базам данных и другим сетевым ресурсам. In an ASP.NET application, you can configure a Windows account as a fixed identity that is used to connect to databases and other network resources. Вы включаете олицетворение в элементе Identity в файле Web. config и указываете имя пользователя и пароль. You enable impersonation in the identity element in the web.config file and specify a user name and password.

Фиксированная учетная запись идентификации должна быть учетной записью с ограниченными правами, которой предоставлены только необходимые разрешения в базе данных. The fixed identity account should be a low-privilege account that has been granted only necessary permissions in the database. Кроме того, нужно зашифровать файл конфигурации, чтобы имя пользователя и пароль не были представлены в виде открытого текста. In addition, you should encrypt the configuration file so that the user name and password are not exposed in clear text.

Не используйте файлы в формате UDL (Universal Data Link) Do Not Use Universal Data Link (UDL) files

Не храните строки соединения для OleDbConnection в UDL-файле. Avoid storing connection strings for an OleDbConnection in a Universal Data Link (UDL) file. Универсальные связи данных хранятся в виде открытого текста и не могут быть зашифрованы. UDLs are stored in clear text and cannot be encrypted. UDL-файл — внешний файловый ресурс для приложения, его нельзя защитить или зашифровать с помощью платформы .NET Framework. A UDL file is an external file-based resource to your application, and it cannot be secured or encrypted using the .NET Framework.

Защититесь от атак путем внедрения кода SQL с помощью построителей строк подключения Avoid Injection Attacks with Connection String Builders

Атака путем внедрения кода в строку соединения может произойти, когда для построения строк соединения на основе ввода пользователя используется динамическое объединение строк. A connection string injection attack can occur when dynamic string concatenation is used to build connection strings based on user input. Если входные данные пользователя не проверяются и опасный текст или символы не экранированы, то злоумышленник может получить доступ к конфиденциальным данным или другим ресурсам на сервере. If the user input is not validated and malicious text or characters not escaped, an attacker can potentially access sensitive data or other resources on the server. Чтобы устранить эту проблему, в ADO.NET 2.0 добавлены новые классы построителя строк подключения, позволяющие проверить синтаксис строки подключения и убедиться, что в нее не внесены дополнительные параметры. To address this problem, ADO.NET 2.0 introduced new connection string builder classes to validate connection string syntax and ensure that additional parameters are not introduced. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения). For more information, see Connection String Builders.

Читайте также:  Pioneer vsx 827 k

Используйте значение False параметра Persist Security Info Use Persist Security Info=False

По умолчанию параметр Persist Security Info имеет значение false. Рекомендуется использовать это значение по умолчанию во всех строках соединения. The default value for Persist Security Info is false; we recommend using this default in all connection strings. Присвоение параметру Persist Security Info значения true или yes позволяет получить конфиденциальные сведения, в том числе идентификатор пользователя и пароль, из соединения после того, как оно будет открыто. Setting Persist Security Info to true or yes allows security-sensitive information, including the user ID and password, to be obtained from a connection after it has been opened. Если параметру Persist Security Info присвоено значение false или no , то сведения безопасности отбрасываются после того, как они используются для открытия соединения. Таким образом, ненадежный источник не получает доступа к конфиденциальным данным. When Persist Security Info is set to false or no , security information is discarded after it is used to open the connection, ensuring that an untrusted source does not have access to security-sensitive information.

For the properties:

Can you tell me what is the difference between them, and if I don’t put it in my connection what will happen?

2 Answers 2

Even if you set Persist Security Info= true OR Persist Security Info=false it won’t show a difference in front..The difference is happening at background

When Persist Security Info set to false security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state.

If you set Persist Security Info to True , Windows will remember the password specified in the connection string.

Thats the difference.

setting Persist Security Info true or false will come into effect only if you mention username and password in connection string. If you mention username and password in connectionstring and set Persist Security Info as false then the credentials cannot be extracted. but if you set Persist Security Info as true while giving credentials in the connectionstring windows will remember the credentials and it can extracted in program

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.