SafeCtl.exe реализует IObjectSafety в элементе управления ActiveX

Переводы статьи Переводы статьи
Код статьи: 164119 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В образце SafeCtl.exe показано, как изменить Элемент управления ActiveX на основе MFC указать издатель код и ли элемент управления был подделан. Примеры могут помочь в идентификации ли элемент управления, безопасный для написания сценариев и инициализации.

Дополнительная информация

В Следующий файл доступен для загрузки из загрузки Майкрософт Центр:
SafeCtl.exe
Для получения дополнительных сведения о том, как загрузить файлы поддержки Майкрософт, щелкните ниже номер статьи базы знаний Майкрософт:
119591 Как загрузить файлы поддержки Майкрософт из Интернета
Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует наиболее текущего антивирусного программного обеспечения на дату, файл была учтена. Файл хранится на защищенных серверах, что предотвращает несанкционированное изменение в файл.

В Internet Explorer 3.0 и более поздних версий Пользователи могут добавлять код в форму элементы управления ActiveX для веб-страниц. В тег<object> используется для указания элемента управления. После возникновения элемент управления создан, его атрибутов можно задать с помощью сохранения состояния элемента управления интерфейсы. Например, для каждого <param> тег, Internet Explorer встречается в контексте тег <object> при синтаксическом анализе страницы HTML Обозреватель Internet Explorer передает набора через соответствующий элемент управления<b00></b00></object></object>IPersistPropertyBag интерфейс. Кроме того может быть поведение элемента управления настроить посредством использования из сценариев, внедренных в страницы, выполнение методы и изменить свойства, предоставленные по автоматизации управления интерфейс.

Технология Authenticode подписывания позволяет конечным пользователям идентифицировать издатель код и убедитесь, что никто не изменял с Этот код с момента его подписания. Он не гарантирует, что код безопасен при его свойства инициализируются значениями из ненадежных или когда его автоматизации моделями ненадежных сценариями. Чтобы избежать таких потенциальные опасные параметры безопасности Internet Explorer по умолчанию, которые будут доступны с помощью Безопасность вкладки Internet Explorer ПараметрыСвойства листа, требуют, что элемент управления регистрируется как реализация соответствующие категории компонентов или что реализации элемента управления IObjectSafety интерфейс. В образце показаны оба.

Прежде чем он устанавливает свойства элемента управления, встроенные в HTML-страницу, Internet Explorer запросов элемент управления для IObjectSafety. Если поддерживается, Internet Explorer вызывает SetInterfaceSafetyOptions метод интерфейса, передавая значение INTERFACESAFE_FOR_UNTRUSTED_DATA как идентификатор интерфейса (IID) Сохранение состояния интерфейса. В HTML-страницы, где свойства имеют тенденцию быть инициализироваться посредством <param> тег, IID – IID_IPersistPropertyBag. В IID предоставляется место быть обеспечения безопасности в случаях, когда Некоторые интерфейсы, но не на другие и в этом примере, который не имеет значения. Пример реализации проверяет, что поддерживается интерфейс. Если элемент управления можно сделать не вреда для системы клиента независимо от того, данные с помощью которого он может инициализироваться через этот интерфейс сохранения и поддерживается сохранение состояния интерфейса реализация элемента управления IObjectSafety::SetInterfaceSafetyOptions метод возвращает значение S_OK. В противном случае возвращается значение E_FAIL.

Перед предоставлением любых сценариев, внедренных в страницы для выполнения, Аналогичным образом вызывает Internet Explorer в элементе управления IObjectSafety:: SetInterfaceSafetyOptions метод, но вместо этого передает значение IID интерфейса, некоторых сценариев и INTERFACESAFE_FOR_UNTRUSTED_CALLER как правило, которая является IID_IDispatch. Элемент управления должен возвращать значение S_OK или E_FAIL соответствующим образом.

Если элемент управления не поддерживает IObjectSafetyInternet Explorer использует диспетчер категории компонентов для просмотра Если элемент управления реализует «безопасный для инициализации» категория CATID_SafeForInitializing и «безопасные» категория CATID_SafeForScripting, соответственно.

Если элемент управления не поддерживает IObjectSafety и не зарегистрировался как реализация соответствующего категории компонентов, и если уровень безопасности обозревателя Internet Explorer установлен высокий, по умолчанию обозреватель Internet Explorer не будет инициализировать свойства элемента управления а также выполнение всех сценариев, внедренных в страницы. В этом сценарии конечные пользователи получают диалоговое окно, содержащее следующий текст:
Потенциальные нарушения безопасности избегать
На этой странице содержит активное содержимое, которое не является проверяемым безопасным для отображения. Для защиты ваших компьютер, в этом содержимого не отображается.
Ниже приведен список правила, которые взяты из статьи Johns пол, "подписывание и маркировка Элементы управления ActiveX. "
  • Элемент управления не могут обрабатывать файловой системы.
  • Элемент управления не могут обрабатывать реестра (за исключением регистрировать и отменять регистрацию сам).
  • Элемент управления не overindex массивов или иным способом неправильной работы памяти.
  • Элемент управления выполняет проверку (и исправляет) все входные, включая Инициализация параметров метода и свойства набора функций.
  • Любые данные, которые предоставляются ненадлежащим управления пользователь или которые — об этом пользователя.
  • Элемент управления был протестирован в различных сценарии.
Для получения дополнительных сведений посетите следующий веб-узла корпорации Майкрософт веб-узел:
Подписание и Пометка элементов управления ActiveX
http://msdn2.Microsoft.com/en-us/library/ms974305.aspx
Если автор элемента управления выявило, что были выше критериям выполнены в дополнение к любым другим, они могут представить себе, они должны учесть Поддержка обоих IObjectSafety и регистрация в качестве реализации соответствующие элементы управления категории компонентов. Список преимуществ и недостатков каждого из Эти методы, просмотрите соответствующий раздел в статье Пол Johns «Подписывание и пометка элементов управления ActiveX.»

Для компиляции

Построение образца требуется Microsoft или Microsoft Visual C++ версии 5.0 Visual C++ 6.0. После извлечения файлов из архива загрузки Safectl.MDP проекта в Microsoft Developer Studio и построения проекта. Как часть процесса построения элемента управления необходимо зарегистрироваться.

Предупреждение Перед изменением образца с помощью двух препроцессора символы, описанные далее в этом разделе, необходимо отменить регистрацию элемент управления, если он уже был построен или зарегистрированы на компьютере. Чтобы сделать это, Запустите программу Regsvr32.exe с /u ключ для элемента управления. Можно также добавить пользовательское средство записи в Studio разработчик, сделать это для текущего проекта. На Сервис меню, нажмите кнопку Настройка, а затем нажмите кнопку очередь Сервис вкладку создать новую запись со следующими свойствами информация:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
На этом этапе можно использовать "Сервис/отменить регистрацию ActiveX Элемента управления"для отмены регистрации элемента управления, прежде чем добавлять или удалять Пример конкретного определения препроцессора.

Чтобы создать элемент управления таким образом, он регистрируется в качестве реализации "безопасный для инициализации" и "safe для выполнения сценариев» категории компонентов, выполните следующие действия:
  1. На Проект меню, нажмите кнопкуПараметры.
  2. Нажмите кнопку C++ TAB, а затем определить После определения препроцессора:
    L_USE_COMCAT
  3. Нажмите кнопку ОК Чтобы закрытьПараметры диалоговое окно, а затем перестройки управления.
Чтобы создать элемент управления таким образом, чтобы вместо реализует IObjectSafety, выполните описанные выше действия, но заменить L_USE_COMCAT с L_IMPL_OBJECTSAFETY.

Также допустимо определить оба препроцессора символы. Обратите внимание, что эти символы являются специфическими для этого проекта. По умолчанию параметры построения проекта определяется как символы препроцессора.

Для запуска

После примера элемента управления был построен и зарегистрирован успешно запустите Internet Explorer, а затем откройте страницу Safectl.htm что входит в состав образца.

При настройке элемента управления Чтобы зарегистрироваться в качестве безопасных или реализации IObjectSafety, названия элементов управления следует читать «Безопасные для инициализации»! Когда Щелкните элемент управления, должно появиться следующее сообщение:
Я должен быть безопасный для сценариев!
Если Интернет Explorer настроен для его оптимальной безопасности, связанный с ним сценарий не Запуск и появляется следующее сообщение:
НЕ безопасный для инициализации!


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

Ссылки

Дополнительные сведения об API-интерфейсы безопасности содержатся в разделе Безопасность Справочник по API в электронной документации ActiveX SDK.

Для получения дополнительных сведения о подписи кода, содержатся в разделе «подписи с помощью Microsoft Authenticode Технология» в электронной документации ActiveX SDK.

Для получения дополнительных сведения о категории компонентов см. в разделе «Категории компонентов» документацию пакета SDK ActiveX.

Для получения дополнительных сведений о способах применения модели компонентных объектов (COM) интерфейс в MFC, щелкните следующий номер статьи в База знаний корпорации Майкрософт:
141277Переопределение интерфейса в приложениях MFC с помощью Visual C++
Подробные сведения о разработке Элемент управления ActiveX и развертыванию в Интернете, обратитесь на следующий Веб-узел:
Основы управления MFC ActiveX
http://MSDN.Microsoft.com/en-us/library/ms968497.aspx

Свойства

Код статьи: 164119 - Последний отзыв: 22 сентября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Ключевые слова: 
kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:164119

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com