SafeCtl.exe implementuje IObjectSafety ovládacího prvku ActiveX

DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.

Projděte si také anglickou verzi článku: 164119
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Souhrn
SafeCtl.exe the vzorek ukazuje, jak změnit ovládací prvek ActiveX systémem MFC, označte vydavatele kód a určuje, zda ovládací prvek byl zfalšován. Vzorek může pomoci určit, zda je ovládací prvek bezpečný pro skriptování a bezpečné pro inicializaci.
Další informace
Je k dispozici ke stažení z webu služby Stažení softwaru následující soubor:
Další informace o tom, jak stahovat soubory podpory společnosti Microsoft, klepněte na následující číslo článku databáze Microsoft Knowledge Base:
119591Jak získat soubory podpory společnosti Microsoft ze serverů služeb online
Microsoft skenován tento soubor neobsahuje viry. Společnost Microsoft použila aktuální antivirový software, který byl k dispozici v den uveřejnění tohoto článku.. Soubor je uložený na zabezpečených serverech neumožňujících neoprávněné změny souborů..

v aplikaci Internet Explorer 3.0 a novější, mohou uživatelé přidávat kód ve formě ovládacích prvků ActiveX na webových stránkách. Značka <object>se používá k určení ovládacího prvku. Po vytvoření instance ovládacího prvku jeho atributy lze nastavit prostřednictvím ovládacího prvku trvalé rozhraní. Například pro každou značku <param>, které aplikace Internet Explorer dojde v rámci značky <object>Při analýze souboru HTML, aplikace Internet Explorer předá vaku vlastnosti pomocí příslušného ovládacího prvkuIPersistPropertyBagrozhraní . Kromě toho chování ovládacího prvku je možné upravit prostřednictvím použití ze skriptů, vložený na stránce, spouštění metod a upravit vlastnosti vystavena prostřednictvím rozhraní pro automatizaci ovládacího prvku.

Podepisování technologie Authenticode kódu umožňuje koncovým uživatelům identifikovat vydavatele kód a ověřte, že nikdo má zfalšován tento kód byl podepsán. Ji nezaručuje, že kód je bezpečné při jeho vlastnosti inicializaci s nedůvěryhodnými hodnoty nebo při jeho automatizace modelu je řízena nedůvěryhodné skripty. Aby takové zabezpečení potenciální rizika, výchozí nastavení zabezpečení aplikace Internet Explorer, které jsou k dispozici prostřednictvímZabezpečenína kartě aplikace Internet ExplorerMožnostiVlastnost list, vyžadují, aby ovládací prvek registrace jako provádění kategorií příslušné součásti nebo že ovládacího prvku provádětIObjectSafetyrozhraní . Vzorek ukázka obojí.

Dříve, než jej nastaví vlastnosti ovládacího prvku vloženého do souboru HTML, aplikace Internet Explorer odešle dotaz pro ovládací prvekIObjectSafety. Je-li podporován, aplikace Internet Explorer potom zavoláSetInterfaceSafetyOptionsmetodu pro toto rozhraní předá hodnotu INTERFACESAFE_FOR_UNTRUSTED_DATA jako identifikátor rozhraní (IID) trvalé rozhraní. Na stránkách HTML dnes, kde vlastnosti mohou být inicializována pomocí značky <param>, je IID IID_IPersistPropertyBag. IID je k dispozici pro situace, kdy je vhodné je chránit bezpečnost na některých rozhraních, ale nikoli na jiných a v tomto příkladu, který není důležité. Provádění kontroly vzorku se ujistěte, že rozhraní je podporováno. Je-li ovládací prvek lze provádět žádné poškození systému klienta bez ohledu na údaje, které mohou být inicializován prostřednictvím tohoto trvalého uložení rozhraní a je podporován trvalé rozhraní, ovládacího prvku prováděníIObjectSafety::SetInterfaceSafetyOptionsMetoda by měl vrátit S_OK. V opačném případě by měla být vrácena E_FAIL.

Před povolením žádné skripty, které jsou vloženy na stránce spustit, aplikace Internet Explorer podobně volání prostřednictvím ovládacího prvkuIObjectSafety:: SetInterfaceSafetyOptionsMetoda , ale místo toho předává hodnotu INTERFACESAFE_FOR_UNTRUSTED_CALLER a IID některé skriptovacích rozhraní, která je obvykle IID_IDispatch. Ovládací prvek by měl vrátit S_OK nebo E_FAIL správným způsobem.

Je-li ovládací prvek nepodporuje.IObjectSafety, Aplikace Internet Explorer používá správce kategorií součástí se zobrazí, pokud ovládací prvek implementuje resp. "bezpečný pro inicializaci" kategorie a CATID_SafeForInitializing "bezpečné" kategorie CATID_SafeForScripting,.

Je-li ovládací prvek nepodporuje.IObjectSafetymá není sám registrován jako provádění příslušné součásti kategorie a je-li úroveň zabezpečení aplikace Internet Explorer je nastavena na hodnotu Vysoká, výchozí hodnota, aplikace Internet Explorer nelze inicializovat vlastností ovládacího prvku, ani provede všechny skripty, které jsou vloženy na stránce. V tomto případě koncovým uživatelům zobrazit dialogové okno s následujícím textem:
Potenciální bezpečnostní porušení vyhnout
Tato stránka obsahuje aktivní obsah, který není bezpečné verifiably zobrazení. K ochraně počítače, tento obsah je zobrazen.
Je seznam pokynů, které jsou převzaty z článku Paul počítačích, "podepisování a označení ovládacích prvků ActiveX:"
  • Ovládací prvek nebude pracovat s systému souborů.
  • Ovládací prvek nebude manipulovat s registru (s výjimkou registrace a zrušení registrace sebe sama).
  • Ovládací prvek neprovádí overindex pole nebo jinak pracovat s paměť nesprávně.
  • Ovládací prvek ověřuje (a opraví) veškerý vstup, včetně inicializace, parametry metody a vlastnosti sady funkcí.
  • Ovládací prvek použil nejsou žádná data, která poskytnutých uživatelem nebo je tento uživatel.
  • The control was tested in a variety of scenarios.
For additional information, visit the following Microsoft Web site:If a control author has verified that the above criteria have been met in addition to any others that they can think of, they should consider supporting both IObjectSafety and registering their control as implementing the appropriate component categories. For a list of the advantages and disadvantages of each of these methods, review the corresponding section in Paul Johns' article, "Signing and Marking ActiveX Controls."

To Compile

Building the sample requires Microsoft Visual C++ 5.0 or Microsoft Visual C++ 6.0. After you extract the files from the archive, load the Safectl.mdp project into Microsoft Developer Studio, and build the project. As part of the build process, the control should register itself.

Warning Before you modify the sample by using the two preprocessor symbols that are listed later in this section, you have to unregister the control if it has already been built or registered on the computer. To do this, run Regsvr32.exe with the /u switch for your control. You can also add a custom tool entry in Developer Studio that will do this for the current project. On the Tools menu, click Customize, and then click the Tools tab. Create a new entry with the following information:
                Name: &Un-register ActiveX Control             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE           Arguments: /u /v "$(TargetPath)"   Initial Directory: $(TargetDir)				
At this point, you can use the "tools/Un-register ActiveX Control" entry to unregister your control before you add or remove the sample-specific preprocessor definitions.

To build the control so that it registers itself as implementing the "safe for initializing" and the "safe for scripting" component categories, follow these steps:
  1. On the Project menu, click Settings.
  2. Click the C++ tab, and then define the following preprocessor definition:
    L_USE_COMCAT
  3. Click OK to close the Settings dialog box, and then rebuild the control.
To build the control so that it instead implements IObjectSafety, follow the previous steps, but replace L_USE_COMCAT with L_IMPL_OBJECTSAFETY.

It is also valid to define both preprocessor symbols. Observe that these symbols are specific to this project. By default, the build settings of the project define both preprocessor symbols.

To Run

After the sample control has been built and has been registered successfully, start Internet Explorer, and then open the Safectl.htm page, which is included with the sample.

If the control has been configured to register itself as safe or implement IObjectSafety, the controls caption should read "Safe for initializing!" When you click the control, you should receive the following message:
I must be safe for scripting!
If Internet Explorer is set to its highest safety setting, the associated script does not run, and you receive the following message:
NOT safe for initializing!


Note If you are building and testing different configurations of this sample, make sure that you refresh the Web page in the browser. If you do not refresh the page, you may be using the cached version of the control instead of the latest build.
Odkazy
For more information about the Safety APIs, see the Safety API reference in the ActiveX SDK online documentation.

For more information about code signing, see "Signing with Microsoft Authenticode Technology" in the ActiveX SDK online documentation.

For more information about Component Categories, see the "Component Categories" topic in the ActiveX SDK online documentation.

For more information about how to implement a Component Object Model (COM) interface in MFC, click the following article number to view the article in the Microsoft Knowledge Base:
141277 How to override an interface in an MFC application by using Visual C++
For in-depth information about how to develop an ActiveX control and how to deploy it on the Web, visit the following Microsoft Web site:
SAFE SAFETY SafeCtl
Poznámka: Toto je článek určený k rychlému zveřejnění, který vydala přímo služba podpory společnosti Microsoft. Uvedené informace jsou poskytovány jako odpověď na vzniklé problémy. Vzhledem k požadavku na rychlé zveřejnění je možné, že zpráva obsahuje typografické chyby, a může být kdykoli bez ohlášení revidována. Další pokyny naleznete v dokumentu Podmínky užití.

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 164119 - Poslední kontrola: 01/12/2015 15:55:19 - Revize: 2.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

  • kbnosurvey kbarchive kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMtcs
Váš názor