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


Функции проектирования безопасности ADO

В следующих разделах описаны функции проектирования безопасности в объектах данных ActiveX (ADO) 2.8 и более поздних версий. Эти изменения были внесены в ADO 2.8 для повышения безопасности. ADO 6.0, которая входит в состав Windows DAC 6.0 в Windows Vista, функционально эквивалентна ADO 2.8, включенной в MDAC 2.8 в Windows XP и Windows Server 2003. В этом разделе содержатся сведения о том, как обеспечить оптимальную защиту приложений в ADO 2.8 или более поздней версии.

Важно!

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

Сценарии доступа к файлам в Интернете Обозреватель

Следующие функции влияют на работу ADO 2.8 и более поздних версий при его использовании на веб-страницах со скриптами в Обозреватель Интернета.

Измененное и улучшенное окно предупреждения системы безопасности теперь используется для оповещений пользователей

Для ADO 2.7 и более ранних версий следующее предупреждающее сообщение появляется, когда веб-страница с помощью скрипта пытается запустить код ADO от ненадежного поставщика:

This page accesses data on another domain. Do you want to allow this? To
avoid this message in Internet Explorer, you can add a secure Web site to
your Trusted Sites zone on the Security tab of the Internet Options dialog
box.

Для ADO 2.8 и более поздних версий предыдущее сообщение больше не отображается. Вместо этого в этом контексте отображается следующее сообщение:

This Website uses a data provider that may be unsafe. If you trust the
Website, click OK, otherwise click Cancel.

Предыдущее сообщение позволяет пользователю принять обоснованное решение, зная при этом последствия для любого из вариантов:

  • Если пользователь доверяет сайту, нажатие кнопки ОК позволит выполнять и выполнять в окне браузера весь дискобезопасный код (все методы и свойства ADO за исключением доступных для диска API, описанных далее в этом разделе).

  • Если пользователь не доверяет сайту, нажатие кнопки Отмена блокирует выполнение и выполнение кода ADO для доступа к данным в полном объеме.

Доступный для диска код теперь ограничен доверенными сайтами

В ADO 2.8 были внесены дополнительные изменения в структуру, которые, в частности, ограничивают возможности ограниченного набора API, которые могут предоставлять возможность чтения или записи в файлы на локальном компьютере. Ниже приведены методы API, которые были дополнительно ограничены для обеспечения безопасности при запуске интернет-Обозреватель:

Для этих ограниченных наборов функций, потенциально доступных для диска, для ADO 2.8 и более поздних версий происходит следующее поведение, если какой-либо код, использующий эти методы, выполняется в Интернет-Обозреватель:

  • Если сайт, предоставляющий код, был добавлен ранее в список зон надежных сайтов, код выполняется в браузере и предоставляется доступ к локальным файлам.

  • Если сайт не отображается в списке зоны надежных сайтов, код блокируется, а доступ к локальным файлам запрещается.

    Примечание

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

Доступ к свойству ActiveCommand в объектах Recordset заблокирован.

При выполнении в интернет-Обозреватель ADO 2.8 теперь блокирует доступ к свойству ActiveCommand для активного объекта Recordset и возвращает ошибку. Ошибка возникает независимо от того, поступает ли страница с веб-сайта, зарегистрированного в списке надежных сайтов.

Изменения в обработке поставщиков OLE DB и интегрированной безопасности

При проверке ADO 2.7 и более ранних версий на наличие потенциальных проблем и проблем безопасности был обнаружен следующий сценарий:

В некоторых случаях поставщики OLE DB, поддерживающие свойство Integrated Security DBPROP_AUTH_INTEGRATED , потенциально могут разрешить веб-страницам скрипта повторно использовать объект ADO Connection для непреднамеренного подключения к другим серверам с использованием текущих учетных данных для входа пользователей. Чтобы избежать этого, ADO 2.8 и более поздних версий обрабатывает поставщики OLE DB в зависимости от того, как они решили предоставлять или не предоставлять для интегрированной безопасности.

Для веб-страниц, загружаемых с сайтов, перечисленных в списке зоны надежных сайтов, в следующей таблице представлена разбивка по тому, как ADO 2.8 и более поздних версий управляет подключениями ADO в каждом случае.

Параметры IE для проверки подлинности пользователя, входа в систему Поставщик поддерживает "Встроенную безопасность", и указаны UID и PWD (SQLOLEDB) Поставщик не поддерживает встроенную безопасность (JOLT, MSDASQL, MSPersist) Поставщик поддерживает встроенную безопасность и имеет значение SSPI (UID и PWD не указаны).
Автоматический вход с использованием текущего имени пользователя и пароля Разрешить подключение Разрешить подключение Разрешить подключение
Запрос имени пользователя и пароля Разрешить подключение Сбой подключения Сбой подключения
Автоматический вход только в зоне интрасети Разрешить подключение Запрос пользователя с предупреждением системы безопасности Запрос пользователя с предупреждением системы безопасности
Анонимный вход Разрешить подключение Сбой подключения Сбой подключения

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

This Website is using your identity to access a data source. If you trust this Website, click OK, otherwise click Cancel.

Предыдущее сообщение позволяет пользователю принять более обоснованное решение и действовать соответствующим образом.

Примечание

Для ненадежных сайтов (то есть сайтов, не перечисленных в списке зон надежных сайтов), если поставщик также не является доверенным (как описано ранее в этом разделе), пользователь может увидеть два предупреждения системы безопасности в строке: предупреждение о небезопасном поставщике и второе предупреждение о попытке использовать его удостоверение. Если пользователь нажимает кнопку ОК к первому предупреждению, выполняется Обозреватель internet Обозреватель параметры и код поведения ответа, описанный в предыдущей таблице.

Управление возвратом текста пароля в строках подключения ADO

При попытке получить значение свойства ConnectionString для объекта ADO Connection происходят следующие события:

  1. Если подключение открыто, затем выполняется вызов инициализации к базовому поставщику OLE DB для получения строки подключения.

  2. В зависимости от параметра в поставщике OLE DB свойства DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO пароли включаются вместе с другими возвращаемыми сведениями строки подключения.

Например, если динамическое свойство ADO Connection Persist Security Info имеет значение True, сведения о пароле включаются в возвращаемую строку подключения. В противном случае, если базовый поставщик задал для свойства значение False (например, с поставщиком SQLOLEDB), сведения о пароле опущены в возвращаемой строке подключения.

Если вы используете сторонние поставщики OLE DB (сторонние разработчики) с кодом приложения ADO, вы можете проверка, как реализуется свойство DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, чтобы определить, разрешено ли включение сведений о пароле в строки подключения ADO.

Проверка наличия нефайловых устройств при загрузке и сохранении наборов записей или потоков

Для ADO 2.7 и более ранних версий операции ввода и вывода файлов, такие как Открытие и Сохранение , которые использовались для чтения и записи данных на основе файлов, в некоторых случаях могут позволить использовать URL-адрес или имя файла, которые определяют тип файла, отличный от диска. Например, LPT1, COM2, PRN.TXT, AUX можно использовать в качестве псевдонима для ввода-вывода между принтерами и вспомогательными устройствами в системе, используя определенные

Для ADO 2.8 и более поздних версий эта функция была обновлена. Для открытия и сохранения объектов Recordset и Stream ADO теперь выполняет тип файла проверка, чтобы убедиться, что устройство ввода или вывода, указанное в URL-адресе или имени файла, является фактическим файлом.

Примечание

Проверка типа файла, описанная в этом разделе, применяется только для Windows 2000 и более поздних версий. Это не относится к ситуациям, когда ADO 2.8 или более поздней версии работает в более ранних выпусках Windows, таких как Windows 98.