Включить поток 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, но я не уверен. Тем не менее, мне нужно, чтобы оно работало, и
все, что я могу найти в Интернете, это как его отключить. ПОЖАЛУЙСТА, ПОМОГИТЕ!!
Реклама
Задать вопрос
Хотите ответить в этой теме или задать свой вопрос?
Вам нужно будет выбрать имя пользователя для сайта, что займет всего пару минут. После этого вы можете опубликовать свой вопрос, и наши участники помогут вам.
Похожие темы
Центр обновления Windows предлагает исправление для другого недостатка от 3 июля | 42 | 4 июля 2004 г. | < /tr>
Обновление 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
- Выберите «Добавить новые элементы» в меню «Файл» (или нажмите Ctrl+N).
- Введите CLSID Macromedia Flash:
Если на вашем компьютере установлена программа Flash, вы также можете ввести ProgID Flash: ShockwaveFlash.ShockwaveFlash - Нажмите «ОК», и Flash будет добавлен в список «Совместимость с ActiveX». После этого вы можете легко выбрать элемент Flash, а затем отключить/включить его.
Параметры командной строки
Перевод на другие языки
- Запустите acm с параметром /savelangfile:
acm.exe /savelangfile
В папке утилиты acm будет создан файл с именем acm_lng.ini. - Откройте созданный языковой файл в Блокноте или любом другом текстовом редакторе.
- Переведите все меню, диалоговые окна и строки на нужный язык. При желании вы также можете добавить свое имя и/или ссылку на свой веб-сайт. (значения TranslatorName и TranslatorURL). Если вы добавите эту информацию, она будет использоваться в окне "О программе".
- После завершения перевода запустите acm, и все переведенные строки будут загружены из языкового файла.
Если вы хотите запустить acm без перевода, просто переименуйте языковой файл или переместите его в другую папку.
Лицензия
Эта утилита выпущена как бесплатное ПО для личного и некоммерческого использования. Вам разрешено свободно распространять эту утилиту через дискету, CD-ROM, Интернет или любым другим способом, если вы ничего за это не берете. Если вы распространяете эту утилиту, вы должны включить все файлы в дистрибутив без каких-либо изменений!
Отказ от ответственности
Программное обеспечение предоставляется «КАК ЕСТЬ» без каких-либо явных или подразумеваемых гарантий, включая, помимо прочего, подразумеваемые гарантии товарного состояния и пригодности для определенной цели. Автор не несет ответственности за какой-либо особый, случайный, косвенный или косвенный ущерб из-за потери данных или по любой другой причине.
Читайте также: