Persist security info true что это
Перейти к содержимому

Persist security info true что это

Защита сведений о подключении

Защита доступа к источникам данным — одна из важнейших целей защиты приложения. Строка соединения представляет собой потенциальную уязвимость, если она не защищена. Сохранение сведений о соединении в виде простого текста или сохранение их в памяти представляет угрозу безопасности всей системы. Строки подключений, внедренные в исходный код, можно прочитать с помощью программы Ildasm.exe (дизассемблер IL) при просмотре промежуточного языка корпорации Майкрософт (MSIL) в скомпилированной сборке.

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

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

Чтобы ограничить доступ к источнику данных, необходимо защитить сведения о безопасном соединении, например, идентификатор пользователя, пароль и имя источника данных. Чтобы не показывать сведения о пользователе, рекомендуется использовать аутентификацию Windows (которую иногда называют встроенной безопасностью) всегда, когда это возможно. Проверка подлинности Windows указывается в строке соединения с помощью ключевых слов Integrated Security или Trusted_Connection , что исключает необходимость указывать идентификатор пользователя и пароль. Когда используется проверка подлинности Windows, пользователей проверяет операционная система Windows, а доступ к ресурсам сервера и базы данных определяется предоставлением разрешений пользователям и группам Windows.

В ситуациях, когда невозможно использовать проверку подлинности Windows, необходимо проявлять дополнительную осторожность, так как учетные данные пользователя представлены в строке соединения. В приложении ASP.NET можно настроить учетную запись Windows как фиксированное удостоверение, которое используется для подключения к базам данных и другим сетевым ресурсам. Олицетворение включается в элементе-идентификаторе в файле web.config, при этом указываются имя пользователя и пароль.

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

Предотвращение атак путем внедрения кода с помощью построителей строк подключения

Атака путем внедрения кода в строку соединения может произойти, когда для построения строк соединения на основе ввода пользователя используется динамическое объединение строк. Если входные данные пользователя не проверяются и опасный текст или символы не экранированы, то злоумышленник может получить доступ к конфиденциальным данным или другим ресурсам на сервере. Чтобы устранить эту проблему, в поставщик данных Microsoft SqlClient для SQL Server добавлен новый класс построителя строк подключений, позволяющий проверить синтаксис строки подключения и убедиться, что в нее не введены дополнительные параметры. Дополнительные сведения см. в статье Connection String Builders (Построители строк подключения).

Использование параметра Persist Security Info со значением false

По умолчанию параметр Persist Security Info имеет значение false. Рекомендуется использовать это значение по умолчанию во всех строках соединения. Присвоение параметру Persist Security Info значения true или yes позволяет получить конфиденциальные сведения, в том числе идентификатор пользователя и пароль, из соединения после того, как оно будет открыто. Если параметру Persist Security Info присвоено значение false или no , то сведения безопасности отбрасываются после того, как они используются для открытия соединения. Таким образом, ненадежный источник не получает доступа к конфиденциальным данным.

Свойство Persist Security Info = true и Persist Security Info Property = false

Можете ли вы сказать мне, в чем разница между ними, и если я не добавлю это в свою связь, что произойдет?

2 ответа

Даже если вы установите Persist Security Info=true ИЛИ Persist Security Info=false это не покажет разницы сразу. Разница происходит на заднем плане.

Когда Persist Security Info=False , с учетом безопасности информация, такая как пароль, не возвращается как часть соединение, если соединение открыто или когда-либо было в открытом штат.

Если вы установите Persist Security Info=True , Windows запомнит пароль, указанный в строке подключения.

Вот в чем разница.

Установка Persist Security Info истина или ложь вступит в силу, только если вы укажете имя пользователя и пароль в строке подключения. Если вы укажете имя пользователя и пароль в строке подключения и установите Persist Security Info как false , тогда учетные данные не могут быть извлечены, но если вы установите Persist Security Info как истинное при указании учетных данных в строке подключения, окна запомнит учетные данные, и их можно будет извлечь программно.

Я нашел этот ответ здесь от Дэна Гузмана, MVP по SQL Server:

Я предлагаю вам указать FALSE или полностью опустить ключевое слово, поскольку оно используется по умолчанию даже во время разработки. Единственный раз, когда вам нужно указать TRUE, это если приложение использует аутентификацию SQL и впоследствии извлекает пароль из объекта соединения, что, по моему опыту, редко выполняется или требуется. Производительность не имеет значения.

Persist Security Info Property=true and Persist Security Info Property=false

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

user avatar

2 Answers 2

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

When Persist Security Info=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=True , Windows will remember the password specified in the connection string.

That’s the difference.

Setting Persist Security Info true or false will come into effect only if you mention username and password in the connection string. If you mention username and password in the connection string 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 connection string, windows will remember the credentials, and it can be extracted programmatically.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *