SafeCtl.exe implementuje IObjectSafety v ovládací prvek

Překlady článku Překlady článku
ID článku: 164119 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Ukázkové SafeCtl.exe ukazuje, jak upravit ovládacího prvku ActiveX systémem MFC, kteří publikovali kód označíte a zda byl zfalšován ovládacího prvku. Ukázkové může pomoci určit, zda je ovládací prvek bezpečný pro skriptování a inicializaci.

Další informace

Na webu služby Stažení softwaru je k dispozici ke stažení následující soubor:
SafeCtl.exe
Další informace o stažení souborů podpory společnosti Microsoft v následujícím článku databáze Microsoft Knowledge Base:
119591Jak získat soubory podpory společnosti Microsoft ze serverů služeb online
Microsoft tento soubor zkontroloval na výskyt virů. 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ší verze mohou uživatelé přidat kód formuláře ovládací prvky ActiveX své stránky WWW. Značky <object>slouží 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>, Internet Explorer nalezne v kontextu značky <object>Při analýze stránky, Internet Explorer předá vlastnost pytlík pomocí příslušného ovládacího prvkuRozhraní IPersistPropertyBag. Prostřednictvím použití z skripty vložené stránky, které spouštění metod a upravit vlastnosti vystavena prostřednictvím rozhraní automatizace ovládacího prvku lze navíc přizpůsobit chování ovládacího prvku.

Podepisování technologie Authenticode kódu umožňuje koncovým uživatelům, kteří publikovali kód identifikovat a ověřte, že nikdo má zfalšován kód byl podepsán. Jej nezaručuje, že kód je bezpečné, kdy inicializován jeho vlastnosti s nedůvěryhodnými hodnoty nebo kdy nedůvěryhodných skripty řízeného jeho automatizace modelu. Takové zabezpečení potenciální předejít hazards, výchozí nastavení zabezpečení aplikace Internet Explorer, které jsou přístupné prostřednictvím kartu zabezpečení Internet Explorer Možnosti vlastnost list, vyžadují, ovládacího prvku samotného zaregistrovat jako implementaci kategorií příslušné součásti nebo ovládací prvek implementovat rozhraní IObjectSafety. Ukázka znázorňuje obě.

Před nastaví vlastnosti ovládacího prvku vložené stránky, Internet Explorer pro IObjectSafety dotazy ovládacího prvku. Pokud podporována, Internet Explorer potom volá metodu SetInterfaceSafetyOptions na tomto rozhraní předávání hodnotu INTERFACESAFE_FOR_UNTRUSTED_DATA stejně jako identifikátor rozhraní (IID) trvalé rozhraní. Na stránkách HTML dnes, kde mají být inicializována prostřednictvím značku <param>tendenci vlastnosti je IID IID_IPersistPropertyBag. Pro situace, kde můžete chtít být bezpečnost některá rozhraní, ale není na ostatní a v tomto příkladu je důležité chránit je poskytována IID. Implementace ukázkové zkontroluje, zda podporuje rozhraní. Pokud ovládací prvek lze provést žádné poškození systému klienta bez ohledu na data, se kterým může být inicializována prostřednictvím rozhraní trvalé a podporována trvalost rozhraní implementace ovládacího prvkuIObjectSafety::SetInterfaceSafetyOptions metoda by měla vracet S_OK. Jinak by měla být vrácena E_FAIL.

Před povolením skripty, které jsou vloženy stránky ke spuštění Internet Explorer podobně volá prostřednictvím ovládacího prvku IObjectSafety:: SetInterfaceSafetyOptions metoda, ale místo toho předá hodnotu INTERFACESAFE_FOR_UNTRUSTED_CALLER a IID některé skriptování rozhraní, což je obvykle IID_IDispatch. Ovládací prvek by měl vrátit S_OK nebo E_FAIL odpovídajícím způsobem.

Pokud ovládací prvek nepodporuje IObjectSafety, správce kategorie součást používá k naleznete, pokud ovládací prvek implementuje "bezpečné pro inicializaci" kategorie a CATID_SafeForInitializing "bezpečná pro skriptování" kategorie CATID_SafeForScripting, respektive.

Pokud ovládací prvek nepodporuje IObjectSafety a nebyla samotný zaregistrována jako implementaci příslušné součásti kategorie a pokud je nastavena vysoká úroveň zabezpečení Internet Explorer, výchozí Internet Explorer není inicializovat vlastností ovládacího prvku ani provede skripty, které jsou vloženy na stránce. V tomto scénáři koncovým uživatelům zobrazí dialogové okno obsahující následující text:
Potenciální bezpečnostní narušení vyhnout
Tato stránka obsahuje aktivní obsah, který není verifiably bezpečné zobrazit. K ochraně počítače tohoto obsahu se nezobrazí.
Následuje seznam pokyny jsou převzaty z článku Paula Johns "podepisování a značky prvky ActiveX:"
  • Ovládací prvek není manipulovat systému souborů.
  • Ovládací prvek není manipulovat registru (kromě registrovat a zrušení registrace sebe sama).
  • Ovládací prvek není overindex matice nebo jinak manipulovat paměť nesprávně.
  • Ovládací prvek ověřuje (a opraví) všechny vstupní včetně inicializace, parametry metody a vlastnosti sady funkcí.
  • Ovládací prvek není zneužít všechna data, která poskytnutých uživatelem nebo je o uživateli.
  • Ovládací prvek byl testován v různých scénářů.
Další informace naleznete na následujícím webu společnosti Microsoft:
Podepisování a značky prvky ActiveX
http://msdn2.microsoft.com/en-us/library/ms974305.aspx
Pokud ovládací prvek Autor ověřil, že byly splněny výše kritéria vedle libovolné jiné, které můžete představit, jejich zvažte podporující oba IObjectSafety a registrace jejich ovládací prvek jako implementaci kategorií příslušné součásti. Seznam výhody a nevýhody těchto metod zkontrolujte v odpovídající části článku Paula Johns "podepisování a značky prvky ActiveX.

Chcete-li kompilace

Vytváření ukázkové vyžaduje Microsoft Visual C++ verze 5.0 nebo aplikace Microsoft Visual C++ 6.0. Po Extrahujte soubory z archivu načíst Safectl.mdp projektu do Microsoft Developer Studio a sestavte projekt. Jako součást procesu sestavení byste zaregistrovat ovládací prvek samotný.

Upozornění Upravte ukázkové pomocí dvou symboly preprocesoru, které jsou uvedeny dále v této části máte zrušit registraci ovládacího prvku, pokud byla již vytvořena nebo registrován v počítači. To provedete spustit s přepínačem /u ovládání regsvr32.exe. Můžete také přidat vlastní nástroj položka v Developer Studio, a to pro aktuální projekt. V nabídce Nástroje klepněte na tlačítko Vlastní a potom na kartu Nástroje vytvořit novou položku s následující informace:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
na tento bod můžete použít položku "nástroje/zrušení registrace prvku ActiveX" zrušit registraci ovládacího prvku před přidat nebo odebrat preprocesoru definic ukázkových specifické.

K vytvoření ovládacího prvku tak, aby zaregistruje sám jako implementace „ bezpečný pro inicializaci"a"bezpečná pro skriptování"součást kategorií, postupujte takto:
  1. V nabídce projekt klepněte na tlačítko Nastavení.
  2. Klepněte na kartu C++ a definujte následující definici preprocesoru:
    L_USE_COMCAT
  3. Klepněte na tlačítko OK zavřete dialogové okno Nastavení a pak znovu vytvořte ovládací prvek.
Vytvořit ovládací prvek tak, aby místo implementuje IObjectSafety, postupujte podle předchozích kroků, ale nahraďte L_USE_COMCAT L_IMPL_OBJECTSAFETY.

Je také platný definovat obou symboly preprocesoru. Sledovat tyto symboly jsou specifické pro tento projekt. Ve výchozím nastavení sestavení projektu definovat obou symboly preprocesoru.

Spustit

Po řízení ukázkové byla vytvořena a byl úspěšně zaregistrován, spusťte aplikaci Internet Explorer a otevřete stránku Safectl.htm, která je součástí ukázkové.

Pokud ovládací prvek byl nakonfigurován samotný zaregistrovat jako bezpečné nebo implementovat IObjectSafety, titulek ovládací prvky byste si měli přečíst "Bezpečné pro inicializaci!" Klepněte na ovládací prvek mělo by se zobrazit následující zpráva:
Musí být I bezpečný pro skriptování!
Internet Explorer je nastavena na jeho nastavení nejvyšší bezpečnost, přidružené skript se nespustí a zobrazí následující zpráva:
NOT bezpečný pro inicializaci!


Poznámka: Pokud jsou budovy a testování různých konfigurací ukázkové, přesvědčte se, zda aktualizovat webovou stránku v prohlížeči. Pokud aktualizujete stránky, používáte pravděpodobně mezipaměti verzi ovládacího prvku namísto nejnovější sestavení.

Odkazy

Další informace o zabezpečení API naleznete bezpečná API odkaz v online dokumentaci ActiveX SDK.

Další informace o podepisování kódu naleznete v části "Podepisování s Microsoft Authenticode Technology" v online dokumentaci ActiveX SDK.

Další informace o součásti kategorie v tématu "Component kategorie" v online dokumentaci ActiveX SDK.

Další informace o implementaci modelu COM (Component Object Model) rozhraní v MFC, Microsoft Knowledge Base:
141277Jak lze přepsat pomocí Visual C++ rozhraní v aplikaci MFC
Podrobné informace o vyvinout ovládací prvek ActiveX a nasadit na webu naleznete na následujícím webu:
ABCs MFC ActiveX Controls
http://msdn.microsoft.com/en-us/library/ms968497.aspx

Vlastnosti

ID článku: 164119 - Poslední aktualizace: 26. dubna 2007 - Revize: 5.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 3.0
  • 128bitová verze aplikace Microsoft Internet Explorer 4.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
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
Klíčová slova: 
kbmt kbdownload kbfile kbinfo kbsample KB164119 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:164119

Dejte nám zpětnou vazbu

 

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