SafeCtl.exe implementa IObjectSafety nel controllo ActiveX

Traduzione articoli Traduzione articoli
Identificativo articolo: 164119 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Nell'esempio di SafeCtl.exe viene illustrato come modificare un controllo basato su MFC ActiveX per indicare che ha pubblicato il codice e se un controllo Ŕ stato alterato. L'esempio pu˛ aiutare a determinare se il controllo Ŕ sicuro per la creazione di script e sicuri per l'inizializzazione.

Informazioni

Il seguente file Ŕ disponibile per il download dall'Area download Microsoft:
SafeCtl.exe
Per ulteriori informazioni su come scaricare file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
119591Come ottenere file di supporto Microsoft dai servizi in linea
Microsoft analizzati questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus pi¨ recente disponibile alla data di pubblicazione del file. Il file Ŕ archiviato in server con protezione avanzata, che impedisce modifiche non autorizzate.

In Internet Explorer 3.0 e versioni successive, gli utenti possono aggiungere codice sotto forma di controlli ActiveX nelle pagine Web. Il tag <object> consente di specificare un controllo. Dopo aver creata un'istanza del controllo, gli attributi possono essere impostati tramite le interfacce di persistenza del controllo. Ad esempio, per ciascun tag <param> che Internet Explorer si verifica nel contesto di un tag <object> durante l'analisi di una pagina HTML, Internet Explorer passa un elenco di proprietÓ tramite del controllo corrispondenteinterfaccia IPersistPropertyBag . Inoltre, Ŕ possibile personalizzare il comportamento di un controllo tramite l'utilizzo di script incorporato nella pagina per eseguire i metodi e modificare le proprietÓ esposte tramite l'interfaccia di automazione del controllo.

Codice di Authenticode firma tecnologia consente agli utenti di fine per identificare l'autore del codice e di verificare che nessuno sia alterato tale codice dopo la firma. Non garantisce che il codice Ŕ sicura quando la proprietÓ vengono inizializzate con valori non attendibili o quando il modello di automazione dai script non attendibili. Per evitare tale protezione potenziali hazards, le impostazioni di protezione predefinite Internet Explorer, accessibili tramite la scheda protezione di Internet Explorer, Opzioni della finestra di proprietÓ foglio, Ŕ necessario che un controllo registrarsi come implementare le categorie di componente appropriato o che il controllo implementa l'interfaccia IObjectSafety . Nell'esempio vengono illustrati entrambi.

Prima di imposta le proprietÓ di un controllo incorporato in una pagina HTML, Internet Explorer richiede il controllo IObjectSafety . Se supportato, verrÓ quindi chiama il SetInterfaceSafetyOptions metodo su questa interfaccia, passando il valore INTERFACESAFE_FOR_UNTRUSTED_DATA cosý come l'identificatore di interfaccia (IID) di un'interfaccia di persistenza. In pagine HTML oggi, in cui in genere essere inizializzati tramite il tag <param>, proprietÓ l'IID Ŕ IID_IPersistPropertyBag. L'IID viene fornito per situazioni in cui Ŕ possibile che si desidera essere proteggere la sicurezza in alcune interfacce ma non altri e in questo esempio non Ŕ importante. L'implementazione di esempio consente di assicurarsi che l'interfaccia Ŕ supportata. Se il controllo pu˛ non causa problemi al sistema del client indipendentemente di dati con cui pu˛ essere inizializzato tramite l'interfaccia di persistenza e l'interfaccia di persistenza Ŕ supportato, implementazione del controllo delmetodo IObjectSafety::SetInterfaceSafetyOptions deve restituire S_OK. In caso contrario, deve essere restituito E_FAIL.

Prima di consentire tutti gli script incorporati nella pagina per essere eseguito, Internet Explorer in modo analogo chiama tramite il controllo IObjectSafety:: SetInterfaceSafetyOptions metodo ma passa invece il valore INTERFACESAFE_FOR_UNTRUSTED_CALLER e l'IID di alcuni script interfaccia, che Ŕ in genere IID_IDispatch. Il controllo deve restituire S_OK o E_FAIL in modo appropriato.

Se il controllo non supporta IObjectSafety , Internet Explorer utilizza il gestore di categorie di componenti per vedere se il controllo implementa la categoria "sicuri per l'inizializzazione" CATID_SafeForInitializing e la categoria "sicuri per la creazione di script", CATID_SafeForScripting, rispettivamente.

Se il controllo non supporta IObjectSafety e non Ŕ stato registrato come implementazione le categorie di componente appropriato e se il livello di protezione di Internet Explorer Ŕ impostato su elevato, l'impostazione predefinita, Internet Explorer non verrÓ inizializzato le proprietÓ del controllo, nÚ verrÓ eseguito qualsiasi script incorporati nella pagina. In questo scenario, gli utenti finali visualizzata una finestra di dialogo che contiene il testo riportato di seguito:
Evitata potenziale violazione di protezione
Questa pagina contiene contenuto attivo che non Ŕ verificabile sicuro da visualizzare. Il contenuto non verrÓ visualizzato per proteggere il computer.
Seguito Ŕ riportato un elenco di linee guida sono tratte dall'articolo di Paul Johns "firma e contrassegnare controlli ActiveX:"
  • Il controllo non modificare il file system.
  • Il controllo non modificare il Registro di sistema (tranne che per la registrazione e la registrazione).
  • Il controllo non overindex matrici o in caso contrario modificare memoria in modo non corretto.
  • Il controllo convalida e corregge tutti gli input, tra cui inizializzazione, i parametri del metodo e le funzioni di set di proprietÓ.
  • Il controllo non modo errato i dati fornito dall'utente o che riguarda l'utente.
  • Il controllo Ŕ stato testato in una varietÓ di scenari.
Per ulteriori informazioni, visitare il sito di Web di Microsoft:
La firma e contrassegnare controlli ActiveX
http://msdn2.microsoft.com/en-us/library/ms974305.aspx
Se un autore del controllo ha verificato che i criteri sopra indicati sono stati soddisfatti oltre agli altri che ritengono di, consiglia di supporto entrambi IObjectSafety e registrare il controllo come implementare le categorie di componente appropriato. Per un elenco dei vantaggi e svantaggi di ciascuno di questi metodi, consultare la sezione corrispondente in articolo di Paul Johns, "firma e contrassegnare controlli ActiveX.

Per la compilazione

Generazione dell'esempio Ŕ necessario disporre Microsoft Visual c ++ 5.0 o Microsoft Visual c ++ 6.0. Una volta che si estraggono i file dall'archivio, caricare il progetto di Safectl.mdp in Microsoft Developer Studio e generare il progetto. Durante il processo di generazione, Ŕ consigliabile registrare il controllo stesso.

avviso Prima di modificare l'esempio, utilizzare in seguito i simboli di per il preprocessore due elencati in questa sezione, Ŕ necessario annullare la registrazione di controllo se Ŕ giÓ stato creato o registrato nel computer. A tale scopo, eseguire regsvr32.exe con l'opzione /u per il controllo. ╚ inoltre possibile aggiungere una voce di strumento personalizzato in Developer Studio questa operazione viene eseguita per il progetto corrente. Fare clic su Personalizza dal menu Strumenti e quindi scegliere la scheda Strumenti crea una nuova voce con le seguenti informazioni:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
a questo punto, Ŕ possibile utilizzare la voce "strumenti/annullare la registrazione controllo ActiveX" per annullare la registrazione del controllo prima di aggiungere o rimuovere le definizioni per il preprocessore esempio specifiche.

Per generare il controllo in modo che registra se stesso come implementare il "sicuri per l'inizializzazione di" e il "sicuri per lo script" categorie di componenti, attenersi alla seguente procedura:
  1. Nel menu progetto , fare clic su Impostazioni .
  2. Fare clic sulla scheda c ++ e quindi definire la seguente definizione per il preprocessore:
    L_USE_COMCAT
  3. Fare clic su OK per chiudere la finestra di dialogo Impostazioni e quindi rigenerare il controllo.
Per creare il controllo in modo che implementa invece IObjectSafety , seguire i passaggi precedenti, ma sostituire L_USE_COMCAT con L_IMPL_OBJECTSAFETY.

Inoltre Ŕ valido per definire entrambi i simboli del preprocessore. Si noti che questi simboli sono specifici per questo progetto. Per impostazione predefinita, le impostazioni di generazione del progetto definiscono entrambi simboli del preprocessore.

Per eseguire

Dopo il controllo di esempio Ŕ stato creato e registrato correttamente, avviare Internet Explorer e quindi aprire la pagina Safectl.htm, incluso con l'esempio.

Se il controllo Ŕ stato configurato per registrarsi come sicuro o implementare IObjectSafety , leggere la didascalia di controlli "Sicuri per l'inizializzazione!" Quando si fa clic il controllo, Ŕ necessario il seguente messaggio:
Deve essere sicuro per la creazione di script.
Se Internet Explorer Ŕ impostato per l'impostazione di protezione pi¨ alto, non viene eseguito lo script associato e viene visualizzato il seguente messaggio:
NON sicuro per l'inizializzazione!


Nota Se la generazione e test di diverse configurazioni di questo esempio, assicurarsi che che si aggiorna la pagina di Web nel browser. Se non si aggiorna la pagina, si stia utilizzando la versione memorizzata nella cache del controllo anzichÚ la versione pi¨ recente.

Riferimenti

Per ulteriori informazioni sulle API di protezione, vedere la protezione riferimento API nella documentazione in linea di SDK di ActiveX.

Per ulteriori informazioni la firma del codice, vedere "Firma con Microsoft Authenticode Technology" nella documentazione in linea di SDK di ActiveX.

Per ulteriori informazioni sulle categorie dei componenti, vedere l'argomento di "Categorie di componenti" nella documentazione in linea di SDK di ActiveX.

Per ulteriori informazioni su come implementare un COM (Component Object Model) dell'interfaccia in MFC, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
141277Come eseguire l'override un'interfaccia in un'applicazione MFC utilizzando Visual c ++
Per informazioni dettagliate su come sviluppare un controllo ActiveX e modalitÓ di distribuzione sul Web, visitare il sito di Web di Microsoft:
L'ABC dei controlli ActiveX MFC
http://msdn.microsoft.com/en-us/library/ms968497.aspx

ProprietÓ

Identificativo articolo: 164119 - Ultima modifica: giovedý 26 aprile 2007 - Revisione: 5.4
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 3.0
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • 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
Chiavi:á
kbmt kbdownload kbfile kbinfo kbsample KB164119 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 164119
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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