SafeCtl.exe implementeert de IObjectSafety in ActiveX-besturingselement

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 164119 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

Het SafeCtl.exe voorbeeld laat zien hoe aanpassen een Op basis van MFC ActiveX-besturingselement om aan te geven wie de code uitgegeven en of een besturings element is geknoeid. Het monster kan helpen om vast te stellen of de besturings element is veilig voor scripts en veilig voor initialisatie.

Meer informatie

Het volgende bestand is beschikbaar voor downloaden van het Microsoft Downloadcentrum Plaats:
SafeCtl.exe
Voor meer informatie informatie over het downloaden van Microsoft-ondersteuningsbestanden, klikt u op de volgende artikelnummer om het artikel in de Microsoft Knowledge Base te bekijken:
119591Hoe Microsoft-ondersteuningsbestanden via online services downloaden
Microsoft heeft dit bestand op virussen. Microsoft gebruikt de meest huidige software voor virusdetectie die beschikbaar op de datum was dat het bestand is geboekt. Het bestand is opgeslagen op beveiligde servers om te voorkomen onbevoegde wijzigingen aan het bestand.

In Internet Explorer 3. 0 en latere versies gebruikers kunnen code in de vorm van ActiveX-besturingselementen toevoegen aan hun webpagina's. Het <object>code wordt gebruikt om een besturings element opgeven. Nadat een instantie van de het besturings element is gemaakt, de ken merken ervan kunnen worden ingesteld via de persistentie van het besturings element interfaces. Bijvoorbeeld, voor elk <param> Internet Explorer label in de context van een tag <object>tegenkomt bij het parseren van een HTML-pagina Internet Explorer geeft een eigenschap zak via het bijbehorende besturings element</object></object>IPersistPropertyBaginterface. Bovendien, het gedrag van een besturings element kan worden aangepast met behulp van scripts die worden uitgevoerd op de pagina ingesloten de methoden en eigenschappen beschikbaar gesteld via automatisering van het besturings element wijzigen interface.

Authenticode-technologie voor codeondertekenings kan eind gebruikers identificeren die de code gepubliceerd en te controleren dat niemand heeft geknoeid met die code nadat het is ondertekend. Het garandeert niet dat de code veilig als is de eigenschappen met niet-vertrouwde waarden worden geïnitialiseerd of wanneer de automatisering model wordt aangedreven door niet-vertrouwde scripts. Om te voorkomen dat potentiële beveiligings risico's de standaardinstellingen van Internet Explorer beveiliging, die toegankelijk via zijn deBeveiligingtabblad van Internet ExplorerOptieseigenschappen blad, vereisen dat een besturings element zelf registreren als de uitvoering van de passende onderdeel categorieën of dat het besturings element implementeert deIObjectSafetyinterface. In het voorbeeld ziet beide.

Voordat wordt de eigenschappen van een besturings element ingesloten in een HTML-pagina Internet Explorer query's het besturings element voorIObjectSafety. Als wordt ondersteund, wordt Internet Explorer vervolgens roept deSetInterfaceSafetyOptionsmethode op deze interface de waarde INTERFACESAFE_FOR_UNTRUSTED_DATA, evenals de interface-id (IID) van een persistentie interface. Op HTML-pagina's vandaag, waar vaak eigenschappen worden initialiseren de <param> label, de IID is IID_IPersistPropertyBag. Het IID is bedoeld voor situaties waarin u mogelijk worden de veiligheid te beschermen op Sommige interfaces, maar op andere niet en in dit voorbeeld is niet belangrijk. De voorbeeld toepassing gecontroleerd om ervoor te zorgen dat de interface wordt ondersteund. Als het besturings element kan geen kwaad het client systeem, onafhankelijk van de gegevens waarmee zij via deze interface persistentie en die kan worden geïnitialiseerd persistentie interface wordt ondersteund, de implementatie van het besturings element van deIObjectSafety::SetInterfaceSafetyOptionsS_OK methode moet worden geretourneerd. Anders moet E_FAIL worden geretourneerd.

Voordat alle scripts die zijn ingesloten in de pagina worden uitgevoerd, Internet Explorer roept ook via het besturings elementIObjectSafety:: SetInterfaceSafetyOptionsmethode maar in plaats daarvan wordt de waarde doorgegeven INTERFACESAFE_FOR_UNTRUSTED_CALLER en de IID van sommige script interface dat is meestal IID_IDispatch. Het besturings element moet retourneren S_OK of E_FAIL op de juiste manier.

Als het besturings element niet ondersteuntIObjectSafetyDe categorieën onderdelenbeheer Internet Explorer gebruikt om te zien Als het besturings element de categorie 'veilig voor initialisatie implementeert' CATID_SafeForInitializing en de categorie 'veilig voor script gebruik' CATID_SafeForScripting, respectievelijk.

Als het besturings element niet ondersteuntIObjectSafetyen is niet geregistreerd als de juiste uitvoering onderdeel categorieën en het veiligheids niveau van Internet Explorer is ingesteld op hoog, de standaard Internet Explorer zal niet initialiseren van het besturings element eigenschappen evenmin worden alle scripts die zijn ingesloten in de pagina uitvoeren. In dit scenario, eind gebruikers verschijnt een dialoog venster met de volgende tekst:
Mogelijke schending van de veiligheid vermeden
Deze pagina bevat actieve inhoud die niet verifiably veilig wilt weer geven. Ter bescherming van uw computer, deze inhoud wordt niet weer gegeven.
Hier volgt een lijst richtsnoeren die worden genomen uit het artikel van Paul Johns', 'ondertekenen en markeren ActiveX-besturingselementen: "
  • Het besturings element wordt het bestandssysteem niet bewerken.
  • Het besturings element is het register niet bewerken (behalve op registreren en zelf registratie).
  • Het besturings element heeft geen overindex arrays of anderszins geheugen niet goed werken.
  • Het besturings element valideert (en corrigeert) alle invoer, met inbegrip van initialisatie, methode parameters en eigenschappen instellen functies.
  • Het besturings element heeft geen gegevens die wordt geleverd door oneigenlijk gebruik of dat de gebruiker is die gebruiker.
  • Het besturings element is getest in een aantal scenario's.
Ga naar de volgende website van Microsoft voor meer informatie website:
Ondertekening en ActiveX-besturingselementen markeren
http://msdn2.Microsoft.com/en-us/library/ms974305.aspx
Als de auteur van een besturings element heeft bevestigd dat de bovenstaande criteria zijn voldaan naast eventuele andere die ze kunnen beschouwen, moeten zij overwegen ondersteuning van beideIObjectSafetyen de registratie van hun controle als de juiste uitvoering onderdeel categorieën. Voor een overzicht van de voordelen en nadelen van elk Deze methoden bekijken de corresponderende sectie in het artikel van Paul Johns', "Ondertekenen en markeren van ActiveX-besturingselementen.

Compileren

Het opzetten van de steek proef vereist Microsoft Visual C++ 5. 0 of Microsoft Visual C++ 6. 0. Nadat u de bestanden uit het archief extraheren, laadt de Safectl.MDP project in Microsoft Developer Studio en bouwt het project. Als onderdeel van het buildproces, het besturings element moet geregistreerd.

WaarschuwingVoordat u het voorbeeld wijzigen met behulp van de twee preprocessor symbolen die verderop in deze sectie worden vermeld, moet de registratie van de besturings element als dit reeds is gebouwd of geregistreerd op de computer. U doet dit door Voer regsvr32. exe met de/uSchakel optie voor het besturings element. U kunt ook een aangepast hulp programma vermelding in toevoegen Developer Studio die dit voor het huidige project doen. Op deHulp programma'smenu, klikt u opAanpassen, en klik vervolgens op hetHulp programma'sMaken van een nieuwe vermelding met de volgende tab. informatie:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
Op dit moment kunt u het "tools/HyperTerminal ActiveX Controle"post registratie van het besturings element voordat u toevoegt of verwijdert de voorbeeld-specifieke preprocessor definities.

Het besturings element maken dat het geregistreerd als de "veilig voor initialiseren" en "veilige uitvoering voor het uitvoeren van scripts' onderdeel categorieën, volgt u deze stappen:
  1. Op deProjectmenu, klikt u opInstellingen.
  2. Klik op deC++tabblad en definieer vervolgens de volgende preprocessor definitie:
    L_USE_COMCAT
  3. Klik opOKsluiten deInstellingenhet dialoog venster en vervolgens opnieuw opbouwen van het besturings element.
Het besturings element maken dat in plaats daarvan worden geïmplementeerdIObjectSafety, de vorige stappen, maar vervang L_USE_COMCAT met L_IMPL_OBJECTSAFETY.

Het is ook geldig voor het definiëren van beide preprocessor symbolen. Let op dat deze symbolen specifiek voor dit project zijn. Standaard de instellingen van de build van het project zowel preprocessor symbolen te definiëren.

Uit te voeren

Na de steek proef controle is gebouwd en is geregistreerd voltooid en start Internet Explorer en open de pagina Safectl.htm die is opgenomen in de steek proef.

Als het besturings element is geconfigureerd geregistreerd als veilig of implementerenIObjectSafety, het bijschrift besturings elementen moet lezen "Veilig voor initialisatie!" Wanneer u klikt op het besturings element, moet u het volgende bericht ontvangt:
Ik moet veilig voor script gebruik!
Als Internet Explorer is ingesteld op de hoogste instelling van de veiligheid, de bijbehorende script niet uitvoeren, en u ontvangt het volgende bericht:
NIET veilig voor het initialiseren van!


OpmerkingAls u bouwen en testen van verschillende configuraties van deze voorbeeld, zorg ervoor dat u de webpagina in de browser vernieuwen. Als u geen Vernieuw de pagina, kan u de versie van het besturings element in plaats van in de cache de laatste build.

Referenties

Zie voor meer informatie over de API's voor de veiligheid, de veiligheid API reference in de on line documentatie van ActiveX SDK.

Voor meer informatie Zie informatie over het ondertekenen van code "ondertekening met Microsoft Authenticode Technology' in de on line documentatie van ActiveX SDK.

Voor meer informatie Zie het onderwerp 'Onderdeel categorieën' in de informatie over onderdeel categorieën de on line documentatie van ActiveX SDK.

Voor meer informatie over het implementeren van een COM (Component Object Model) interface in MFC, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base:
141277Een interface in een MFC-toepassing met behulp van Visual C++ negeren
Voor gedetailleerde informatie over het ontwikkelen van een Ga naar de volgende Microsoft ActiveX-besturingselement en het implementeren van deze op het Web Website:
Het ABC van MFC ActiveX-besturingselementen
http://msdn.Microsoft.com/en-us/library/ms968497.aspx

Eigenschappen

Artikel ID: 164119 - Laatste beoordeling: donderdag 22 september 2011 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Trefwoorden: 
kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:164119

Geef ons feedback

 

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