Включить поток Adodb в Internet Explorer

Обновлено: 21.11.2024

На прошлой неделе я писал о двух способах быстрого и простого решения проблем с базами данных Microsoft ADO (ADODB). Одним из решений является сценарий реестра от eEye Digital Security, а другим — Qwik-Fix от PivX Solutions. Насколько мне известно, оба эти решения могут отключать части ADODB. Если вы пропустили информационный бюллетень прошлой недели, вы можете прочитать о решениях на странице

Метод комбинированной атаки, о котором я писал на прошлой неделе, включает использование объекта ADODB.Stream, который, по словам Microsoft, по сути является файлом в памяти. Теперь Microsoft выпустила официальное исправление для отключения ADODB.Stream для Windows Server 2003, Windows XP и Windows 2000. Вы можете загрузить исправление «Критическое обновление для компонентов доступа к данным Microsoft — отключить объект ADODB.Stream из Internet Explorer» по адресу: < /p>

Согласно соответствующей статье Microsoft «Как отключить объект ADODB.Stream из Internet Explorer», исправление вносит изменения в реестр, которые предотвращают доступ объекта ADODB.Stream к локальным дискам через Microsoft Internet Explorer (IE). . Однако при необходимости другие приложения, использующие этот объект, могут получить доступ к диску.

В дополнение к установке исправления Microsoft, которое, я думаю, рекомендовало бы большинство специалистов по безопасности, вы можете рассмотреть возможность внесения других изменений в конфигурацию ваших установок IE. В другой статье Microsoft «Как усилить параметры безопасности для зоны «Локальный компьютер» в Internet Explorer» описывается, как отключить элементы управления ActiveX и апплеты Java, запрашивать пользователя перед запуском сценариев, запрашивать пользователя перед доступом к базе данных в другой зоне, контролировать как применяется безопасность зоны (например, для каждого пользователя или одни и те же настройки для всех пользователей, могут ли пользователи изменять эти настройки) и использовать групповую политику для управления настройками зоны безопасности IE. Имейте в виду, что вы можете столкнуться с нежелательными эффектами (как указано в статье) при внесении некоторых рекомендуемых изменений.

В двух других статьях – "Как остановить запуск элемента управления ActiveX в Internet Explorer" и "Как удалить элемент управления ActiveX в Windows" – описывается, как запретить IE использовать определенные элементы управления ActiveX и как удалить элементы управления ActiveX. если вам нужно сделать это по какой-либо причине. Используя некоторые или все рекомендуемые параметры безопасности IE, вы можете значительно повысить безопасность браузера

Microsoft заявила, что в ближайшие недели выпустит серию обновлений безопасности для IE, которые обеспечат дополнительную защиту; однако компания не сообщила, что на самом деле могут повлечь за собой эти обновления. Компания также заявила, что работает над «комплексным обновлением для всех поддерживаемых версий Internet Explorer, \[которое\] будет выпущено после того, как будет тщательно протестировано и признано эффективным для широкого спектра поддерживаемых версий и конфигураций Internet Explorer». ."

Компания также заявила, что грядущий пакет обновления 2 (SP2) для XP лучше защитит пользователей от атак и нежелательного контента, в том числе загружаемого. Таким образом, в дополнение к уже упомянутым исправлениям и изменениям конфигурации, ожидается дополнительная помощь.

IE/JS: метод SaveToFile() в ADODB.stream не работает только с одним из параметров сохранения: "adSaveCreateOverwrite"

Вопрос

С помощью IE/Javascript я пытаюсь создавать сценарии (программирование) для функций доступа к локальным файлам (чтение/запись), своего рода создание собственных функций-оболочек с использованием ADODB.stream. Целью является не попытка доступа из удаленного Интернета, а предполагаемый доступ к данным локального файла только с моего локального ПК/IE.

Любые ограничения безопасности, налагаемые системой Windows, снимаются путем соответствующих настроек реестра. Я успешно читал локальные файлы данных с помощью метода LoadFromFile() (один из методов ADODB.stream), даже нормально записывая (/сохраняя) данные с помощью SaveToFile(), но с другим параметром сохранения: "adSaveCreateNotExist".

Мне не удалось заставить SaveToFile() работать ТОЛЬКО с его параметром "adSaveCreateOverwrite" -- симптом заключается в том, что при вызове SaveToFile() с параметром "adSaveCreateOverwrite" ничего не происходит, независимо от того, существует файл сохранения или нет (я пробовал в обоих случаях): существующий файл не перезаписывается, если он существует, или новый файл не создается, если он не существует - одним словом, ничего не происходит.

Почему так? Что может быть не так? Спасибо за ваш совет.

***** Используемая ОС: Windows XP (prof) SP2 (японский) / IE6

Ответы

IE запрещен доступ к вашей локальной файловой системе из скрипта. Вы можете использовать два мысленных эксперимента, чтобы понять, почему это так: «Представьте, если бы это было возможно» и «Представьте, если бы все действительно работало именно так». Эти мысленные эксперименты являются частным случаем того, что, если бы две программы сделали это?

Во-первых, я настоятельно рекомендую обновить IE6. Во-вторых, вы можете использовать HTA, представляющий собой HTML-документ, который выполняется в mshta.exe и имеет доступ ко всем объектам ActiveX, а не только к тем, которые помечены как "безопасные для сценариев".

Все ответы

IE запрещен доступ к вашей локальной файловой системе из скрипта. Вы можете использовать два мысленных эксперимента, чтобы понять, почему это так: «Представьте, если бы это было возможно» и «Представьте, если бы все действительно работало именно так». Эти мысленные эксперименты являются частным случаем того, что, если бы две программы сделали это?

Во-первых, я настоятельно рекомендую обновить IE6. Во-вторых, вы можете использовать HTA, который представляет собой HTML-документ, который выполняется в mshta.exe и имеет доступ ко всем объектам ActiveX, а не только к тем, которые помечены как «безопасные для сценариев».

Спасибо, Билл, за ответ, но у меня все еще есть некоторые аргументы без полного понимания.

<р>1. Вы сказали, что IE запрещен доступ к локальным файлам, но, согласно моей проверке, это верно, когда **по умолчанию** для Windows XP с пакетом обновления 2 (и более поздних версий?).

<р>2. При правильных настройках Windows (ценных бумаг и реестра) доступ может быть включен точно ---- см. следующий URL:

речь идет о том, "как отключить объект ADODB.Stream из Internet Explorer", тогда как точно сказано, как его **включить** -- с учетом таких ситуаций, когда необходимо разрешить доступ через corp. интранет и т. д.; соответствующая часть приведена в кавычках, как показано ниже (особенно см. Часть из ". для восстановления функциональности приложения") ---

Если вы запускаете приложение в среде корпоративной интрасети, а среда корпоративной интрасети в настоящее время использует объект ADODB.Stream с Internet Explorer, применение этого обновления может привести к сбою приложения. Чтобы восстановить функциональность приложения, Microsoft рекомендует сначала установить для браузера Internet Explorer высокий уровень безопасности, а затем снять флаг совместимости объекта ADODB.Stream .

<р>3. Верно ли это — доступ к локальным файлам по-прежнему возможен, хотя и не рекомендуется?

По-видимому, это несоответствие между тем, что описывает функциональность MS, и фактическим поведением функциональности.

Я с трудом могу понять и принять подобные вещи - однако, следуя вашему коду разработки документации, после запуска он загадочным образом/тихо падает или перестает работать должным образом, без каких-либо знаков или сообщений, указывающих, где и как он терпит неудачу!

На самом деле, это не первый раз, когда я вижу подобные случаи — например, в моем предыдущем опыте написания сценариев я когда-либо пробовал программировать VBScript для подключения к удаленному рабочему столу (RDP), в котором одной задачей является автоматический запуск удаленной программы через создание соответствующей настройки командной строки на локальной стороне и передача ее в RDP. Проблема в том, что иногда удаленная программа успешно запускается, иногда нет, но никаких сообщений об ошибках/предупреждениях не было видно, единственный симптом заключается в том, что удаленная программа не выполняется! это действительно странно.

<р>5. Я знаю, что вы предложили использовать HTA вместо JS, но, пожалуйста, посоветуйте, как мне правильно понять несоответствия MS.

Настройка проекта ADO и написание кода ADO одинаковы независимо от того, используете ли вы Visual Basic или Visual Basic для приложений. В этом разделе рассматривается использование ADO как с Visual Basic, так и с Visual Basic для приложений, а также отмечаются любые различия.

Ссылка на библиотеку ADO

Ваш проект должен ссылаться на библиотеку ADO.

Ссылка на ADO из Microsoft Visual Basic

В Visual Basic в меню «Проект» выберите «Ссылки». .

Выберите Microsoft ActiveX Data Objects x.x Library из списка. Убедитесь, что выбраны как минимум следующие библиотеки:

Visual Basic для приложений

Объекты и процедуры среды выполнения Visual Basic

Объекты и процедуры Visual Basic

Нажмите "ОК".

Вы можете так же легко использовать ADO с Visual Basic для приложений, например, с помощью Microsoft Access.

Ссылка на ADO из Microsoft Access

В Microsoft Access выберите или создайте модуль на вкладке «Модули» в окне «База данных».

В меню "Инструменты" выберите "Ссылки". .

Выберите Microsoft ActiveX Data Objects x.x Library из списка. Убедитесь, что выбраны как минимум следующие библиотеки:

Visual Basic для приложений

Библиотека объектов Microsoft Access 8.0 (или более поздней версии)

Библиотека объектов Microsoft DAO 3.5 (или более поздней версии)

Нажмите "ОК".

Создание объектов ADO в Visual Basic

Чтобы создать переменную автоматизации и экземпляр объекта для этой переменной, можно использовать два метода: Dim или CreateObject.

Вы можете использовать ключевое слово New вместе с Dim для объявления и создания экземпляров объектов ADO за один шаг:

В качестве альтернативы объявление оператора Dim и создание экземпляра объекта также могут состоять из двух шагов:

Не требуется явно использовать progid ADODB с оператором Dim, если вы правильно указали ссылку на библиотеку ADO в своем проекте.Однако его использование гарантирует отсутствие конфликтов имен с другими библиотеками.

Например, если вы включаете ссылки и на ADO, и на DAO в один и тот же проект, вы должны включить квалификатор, чтобы указать, какую объектную модель использовать при создании экземпляров объектов Recordset, как в следующем коде:

СоздатьОбъект

При использовании метода CreateObject объявление и создание экземпляра объекта должны состоять из двух отдельных шагов:

Объекты, созданные с помощью CreateObject, имеют позднее связывание, что означает, что они не являются строго типизированными, а завершение командной строки отключено. Однако он позволяет пропустить ссылку на библиотеку ADO из вашего проекта и позволяет создавать экземпляры определенных версий объектов. Например:

Этого также можно добиться, специально создав ссылку на библиотеку типов ADO версии 2.0 и создав объект.

Создание экземпляров объектов с помощью метода CreateObject обычно выполняется медленнее, чем с помощью оператора Dim.

Обработка событий

Для обработки событий ADO в Microsoft Visual Basic необходимо объявить переменную уровня модуля с помощью ключевого слова WithEvents. Переменная может быть объявлена ​​только как часть модуля класса и должна быть объявлена ​​на уровне модуля. Более подробное обсуждение обработки событий ADO см. в разделе Обработка событий ADO.

Примеры Visual Basic

Многие примеры Visual Basic включены в документацию по ADO. Дополнительные сведения см. в разделе Примеры кода ADO в Microsoft Visual Basic.

Интернет-программа, которая мне нужна для работы, не полностью загружает некоторые страницы. На некоторых
страницах я получаю сообщение об ошибке: «Компонент ActiveX не может создать
объект: ‘ADODB.Stream’. Я предполагаю, что я отключил ADODB.stream в окнах
обновление безопасности KB870669, но я не уверен. Тем не менее, мне нужно, чтобы оно работало, и
все, что я могу найти в Интернете, это как его отключить. ПОЖАЛУЙСТА, ПОМОГИТЕ!!

Реклама

Задать вопрос

Хотите ответить в этой теме или задать свой вопрос?

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

Похожие темы

< /tr> < tr >
Центр обновления Windows предлагает исправление для другого недостатка от 3 июля 42 4 июля 2004 г.
Обновление ADODB.stream --- блокирует доступ к большинству веб-сайтов и коллекции электронной почты 1 4 июля 2004 г.
установка последнего критического обновления в Windows XP 1 3 июля 2004 г.
Проблема ADODB.Stream между браузером IE и IIS6 3 22 июля 2004 г.
ОШИБКА установки Центра обновления Windows 1 16 июля 2004 г.
Ошибка Центра обновления Windows 5 2 августа 2004 г.
Извлечь текст сообщения MIME 0 5 мая 2006 г.
KB870669 — Уязвимость в обновлении объекта ADODB.Stream 1 6 июля 2004 г.

PC Review – это веб-сайт, посвященный обзорам компьютерной техники, с полезными форумами технической поддержки, на которых работают специалисты по ПК. Если у вас возникли проблемы с компьютером, обратитесь за советом на наш форум.

Эта утилита позволяет легко отключать/включать компоненты ActiveX в браузере Internet Explorer.
Он отключает нужный компонент ActiveX, устанавливая «бит аннулирования» нужного CLSID в следующем разделе реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility
Дополнительную информацию об этом разделе реестра см. прочитать эту статью Microsoft

Использование диспетчера совместимости ActiveX

Диспетчер совместимости ActiveX — это автономный исполняемый файл, не требующий установки или дополнительных библиотек DLL. Для того, чтобы начать им пользоваться, просто скопируйте исполняемый файл (acm.exe) в любую понравившуюся папку и запустите его.
В главном окне acm отображается список всех компонентов ActiveX, которые в данный момент доступны для включения/отключения. Для компонентов, которые в данный момент установлены на вашем компьютере, также отображается дополнительная информация: название продукта, название компании, описание, версия, имя файла и прочее.
Если вы хотите отключить компонент ActiveX, которого нет в списке, вы можете добавить его в список с помощью параметра «Добавить новые элементы». В окне «Добавить новые элементы» вы можете ввести один или несколько идентификаторов CLSID или ProgID, разделенных запятой, или ввести ключ. Например: если вы хотите добавить компоненты ADODB.Stream и ShockwaveFlash.ShockwaveFlash в список: вы можете просто ввести их CLSID:
Или, альтернативно, вы можете ввести их ProgID: после нажатия «ОК» компоненты, которые вы ввели добавлены в список совместимости с ActiveX, и вы можете легко отключить/включить их.
Вы также можете добавить новые идентификаторы CLSID из текстового файла, используя параметр «Загрузить новые элементы из файла». При использовании этого параметра все идентификаторы CLSID в текстовом файле добавляются в отключенном состоянии.

Отключение/включение Macromedia Flash Player

  1. Выберите «Добавить новые элементы» в меню «Файл» (или нажмите Ctrl+N).
  2. Введите CLSID Macromedia Flash:
    Если на вашем компьютере установлена ​​программа Flash, вы также можете ввести ProgID Flash: ShockwaveFlash.ShockwaveFlash
  3. Нажмите «ОК», и Flash будет добавлен в список «Совместимость с ActiveX». После этого вы можете легко выбрать элемент Flash, а затем отключить/включить его.

Параметры командной строки

Перевод на другие языки

  1. Запустите acm с параметром /savelangfile:
    acm.exe /savelangfile
    В папке утилиты acm будет создан файл с именем acm_lng.ini.
  2. Откройте созданный языковой файл в Блокноте или любом другом текстовом редакторе.
  3. Переведите все меню, диалоговые окна и строки на нужный язык. При желании вы также можете добавить свое имя и/или ссылку на свой веб-сайт. (значения TranslatorName и TranslatorURL). Если вы добавите эту информацию, она будет использоваться в окне "О программе".
  4. После завершения перевода запустите acm, и все переведенные строки будут загружены из языкового файла.
    Если вы хотите запустить acm без перевода, просто переименуйте языковой файл или переместите его в другую папку.

Лицензия

Эта утилита выпущена как бесплатное ПО для личного и некоммерческого использования. Вам разрешено свободно распространять эту утилиту через дискету, CD-ROM, Интернет или любым другим способом, если вы ничего за это не берете. Если вы распространяете эту утилиту, вы должны включить все файлы в дистрибутив без каких-либо изменений!

Отказ от ответственности

Программное обеспечение предоставляется «КАК ЕСТЬ» без каких-либо явных или подразумеваемых гарантий, включая, помимо прочего, подразумеваемые гарантии товарного состояния и пригодности для определенной цели. Автор не несет ответственности за какой-либо особый, случайный, косвенный или косвенный ущерб из-за потери данных или по любой другой причине.

Читайте также: