Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le funzionalità di sicurezza fornite da Microsoft .NET Framework e Microsoft Office consentono di proteggere le soluzioni Office da possibili minacce alla sicurezza. In questo argomento vengono illustrate alcune di queste minacce e vengono fornite raccomandazioni per la protezione da tali minacce. Include anche informazioni sul modo in cui le impostazioni di sicurezza di Microsoft Office influiscono sulle soluzioni Office.
Si applica a: Le informazioni contenute in questo argomento si applicano ai progetti a livello di documento e ai progetti di componente aggiuntivo VSTO. Vedere Funzionalità disponibili in base all'applicazione e al tipo di progetto di Office.
Il codice attendibile viene riutilizzato in un nuovo documento dannoso
Un utente malintenzionato potrebbe accettare codice attendibile destinato a uno scopo specifico, ad esempio scaricare informazioni personali per un'applicazione di lavoro e riutilizzarlo in un altro documento, ad esempio un foglio di lavoro. Il codice non sa che il documento originale non è in esecuzione e può aprire altre minacce, ad esempio rivelare informazioni personali o eseguire codice con privilegi maggiori, quando aperto da un utente diverso. In alternativa, l'utente malintenzionato può modificare i dati nel foglio di lavoro in modo che, quando inviati alla vittima, si comporta in modo imprevisto. Modificando i valori, le formule o le caratteristiche di presentazione di un foglio di lavoro collegato al codice, è possibile che un utente malintenzionato attacchi un altro utente inviando un file modificato. È anche possibile che gli utenti accingano alle informazioni che non dovrebbero visualizzare modificando i valori nel foglio di lavoro.
Poiché sia il percorso dell'assembly che il percorso del documento devono avere prove sufficienti per eseguire, questo attacco non è facile da eseguire. Ad esempio, i documenti negli allegati di posta elettronica o nei server Intranet non attendibili non dispongono di autorizzazioni sufficienti per l'esecuzione.
Per rendere possibile questo attacco, il codice stesso deve essere scritto in modo tale da prendere decisioni basate su dati potenzialmente non attendibili. Un esempio è la creazione di un foglio di lavoro con una cella nascosta contenente il nome di un server di database. L'utente invia il foglio di lavoro a una pagina ASPX, che tenta di connettersi a tale server utilizzando l'autenticazione SQL e una password dell'account SA codificata in modo fisso. Un utente malintenzionato potrebbe sostituire il contenuto della cella nascosta con un diverso nome di computer e ottenere la password dell'amministratore di sistema. Per evitare questo problema, non impostare mai password hardcoded e controllare sempre gli ID server rispetto a un elenco interno di server noti per essere validi prima di accedere al server.
Recommendations
Convalidare sempre l'input e i dati, indipendentemente dal fatto che provenga dall'utente, dal documento, da un database, da un servizio Web o da qualsiasi altra origine.
Prestare attenzione all'esposizione di particolari tipi di funzionalità, ad esempio il recupero di dati con privilegi per conto dell'utente e l'inserimento in un foglio di lavoro non protetto.
A seconda del tipo di applicazione, potrebbe essere opportuno verificare che il documento originale sia in esecuzione prima di eseguire qualsiasi codice. Ad esempio, verificare che l'operazione sia in esecuzione a partire da un documento archiviato in una posizione conosciuta e sicura.
Potrebbe essere consigliabile visualizzare un avviso quando il documento viene aperto se l'applicazione esegue azioni con privilegi. Ad esempio, è possibile creare una schermata iniziale o una finestra di dialogo di avvio che informa che l'applicazione accederà alle informazioni personali e che l'utente sceglie di continuare o annullare. Se un utente finale riceve un avviso di questo tipo da un documento apparentemente innocente, sarà in grado di uscire dall'applicazione prima che qualsiasi elemento venga compromesso.
Il codice è bloccato dalla protezione del modello a oggetti di Outlook
Microsoft Office può limitare l'utilizzo di determinate proprietà, metodi e oggetti nel modello a oggetti. Limitando l'accesso a questi oggetti, Outlook consente di evitare che i worm di posta elettronica e i virus usino il modello a oggetti per scopi dannosi. Questa funzionalità di sicurezza è nota come protezione del modello a oggetti di Outlook. Se un componente aggiuntivo VSTO tenta di utilizzare una proprietà o un metodo con restrizioni mentre è abilitata la protezione del modello a oggetti, in Outlook viene visualizzato un avviso di sicurezza che consente all'utente di arrestare l'operazione oppure consente all'utente di concedere l'accesso alla proprietà o al metodo per un periodo di tempo limitato. Se l'utente arresta l'operazione, i componenti aggiuntivi VSTO di Outlook creati tramite soluzioni Office in Visual Studio genereranno un'eccezione COMException.
La protezione del modello a oggetti può influire sui componenti aggiuntivi VSTO in modi diversi, a seconda che Outlook venga usato con Microsoft Exchange Server:
Se Outlook non viene usato con Exchange, un amministratore può abilitare o disabilitare la protezione del modello a oggetti per tutti i componenti aggiuntivi VSTO nel computer.
Se Outlook viene usato con Exchange, un amministratore può abilitare o disabilitare la protezione del modello a oggetti per tutti i componenti aggiuntivi VSTO nel computer oppure l'amministratore può specificare che alcuni componenti aggiuntivi VSTO possono essere eseguiti senza riscontrare la protezione del modello a oggetti. Gli amministratori possono anche modificare il comportamento della protezione del modello a oggetti per determinate aree del modello a oggetti. Ad esempio, gli amministratori possono consentire automaticamente ai componenti aggiuntivi VSTO di inviare messaggi di posta elettronica a livello di codice, anche se la protezione del modello a oggetti è abilitata.
A partire da Outlook 2007, il comportamento della protezione del modello a oggetti è stato modificato per migliorare l'esperienza utente e lo sviluppatore, contribuendo al contempo a proteggere Outlook. Per altre informazioni, vedere Modifiche alla sicurezza del codice in Outlook 2007.
Ridurre al minimo le notifiche di protezione del modello a oggetti
Per evitare avvisi di sicurezza quando si utilizzano proprietà e metodi con restrizioni, assicurarsi che il componente aggiuntivo VSTO ottenga oggetti di Outlook dal Application campo della ThisAddIn classe nel progetto. Per altre informazioni su questo campo, vedere Programmare componenti aggiuntivi VSTO.
Solo gli oggetti di Outlook ottenuti da questo oggetto possono essere considerati attendibili dalla protezione del modello a oggetti. Al contrario, gli oggetti ottenuti da un nuovo Microsoft.Office.Interop.Outlook.Application oggetto non sono attendibili e le proprietà e i metodi con restrizioni genereranno avvisi di sicurezza se la protezione del modello a oggetti è abilitata.
Nell'esempio di codice seguente viene visualizzato un avviso di sicurezza se la protezione del modello a oggetti è abilitata. La To proprietà della Microsoft.Office.Interop.Outlook.MailItem classe è limitata dalla protezione del modello a oggetti. L'oggetto Microsoft.Office.Interop.Outlook.MailItem non è attendibile perché il codice lo ottiene da un Microsoft.Office.Interop.Outlook.Application oggetto creato usando il nuovo operatore, anziché ottenerlo dal Application campo.
private void UntrustedCode()
{
Microsoft.Office.Interop.Outlook.Application application =
new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem mailItem1 =
application.CreateItem(
Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) as
Microsoft.Office.Interop.Outlook.MailItem;
mailItem1.To = "someone@example.com";
MessageBox.Show(mailItem1.To);
}
Nell'esempio di codice seguente viene illustrato come utilizzare la proprietà To con restrizioni di un Microsoft.Office.Interop.Outlook.MailItem oggetto considerato attendibile dalla protezione del modello a oggetti. Il codice usa il campo attendibile Application per ottenere il Microsoft.Office.Interop.Outlook.MailItem.
private void TrustedCode()
{
Microsoft.Office.Interop.Outlook.MailItem mailItem1 =
this.Application.CreateItem(
Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) as
Microsoft.Office.Interop.Outlook.MailItem;
mailItem1.To = "someone@example.com";
MessageBox.Show(mailItem1.To);
}
Annotazioni
Se Outlook viene utilizzato con Exchange, l'acquisizione di tutti gli oggetti di Outlook da ThisAddIn.Application non garantisce che il componente aggiuntivo VSTO sarà in grado di accedere all'intero modello a oggetti di Outlook. Ad esempio, se un amministratore di Exchange imposta Outlook per negare automaticamente tutti i tentativi di accesso alle informazioni sugli indirizzi utilizzando il modello a oggetti di Outlook, Outlook non consentirà all'esempio di codice precedente di accedere alla proprietà To, anche se nell'esempio di codice viene utilizzato il campo attendibile ThisAddIn.Application .
Specificare quali componenti aggiuntivi considerare attendibili quando si usa Exchange
Quando Outlook viene usato con Exchange, gli amministratori possono specificare che determinati componenti aggiuntivi VSTO possono essere eseguiti senza riscontrare la protezione del modello a oggetti. I componenti aggiuntivi VSTO di Outlook creati tramite soluzioni Office in Visual Studio non possono essere considerati attendibili singolarmente; possono essere considerati attendibili solo come gruppo.
Outlook considera attendibile un componente aggiuntivo VSTO basato su un codice hash della DLL del punto di ingresso del componente aggiuntivo VSTO. Tutti i componenti aggiuntivi VSTO di Outlook destinati al runtime di Visual Studio Tools per Office usano la stessa DLL del punto di ingresso (VSTOLoader.dll). Ciò significa che se un amministratore considera attendibile qualsiasi componente aggiuntivo VSTO destinato al runtime di Visual Studio Tools per Office per l'esecuzione senza incontrare la protezione del modello a oggetti, vengono considerati attendibili anche tutti gli altri componenti aggiuntivi VSTO destinati al runtime di Visual Studio Tools per Office. Per altre informazioni sull'attendibilità di componenti aggiuntivi VSTO specifici da eseguire senza incontrare la protezione del modello a oggetti, vedere Specificare il metodo utilizzato da Outlook per gestire le funzionalità di prevenzione dei virus.
Le modifiche alle autorizzazioni non diventano effettive immediatamente
Se l'amministratore modifica le autorizzazioni per un documento o un assembly, gli utenti devono uscire e quindi riavviare tutte le applicazioni di Office affinché tali modifiche vengano applicate.
Anche altre applicazioni che ospitano applicazioni di Microsoft Office possono impedire l'applicazione delle nuove autorizzazioni. Gli utenti devono chiudere tutte le applicazioni che usano Office, ospitata o autonoma, quando vengono modificati i criteri di sicurezza.
Le impostazioni del Centro protezione in Microsoft Office System non influiscono sui componenti aggiuntivi o sulle personalizzazioni a livello di documento
Gli utenti possono impedire il caricamento dei componenti aggiuntivi VSTO impostando un'opzione nel Centro protezione. Tuttavia, i componenti aggiuntivi VSTO e le personalizzazioni a livello di documento creati usando le soluzioni Office in Visual Studio non sono interessati da queste impostazioni di attendibilità.
Se l'utente impedisce il caricamento dei componenti aggiuntivi VSTO tramite il Centro protezione, i tipi di componenti aggiuntivi VSTO seguenti non verranno caricati:
Componenti aggiuntivi COM VSTO gestiti e non gestiti.
Documenti intelligenti gestiti e non gestiti.
Componenti aggiuntivi VSTO per l'automazione, gestiti e non gestiti.
Componenti dati in tempo reale gestiti e non gestiti.
Le procedure seguenti descrivono come gli utenti possono usare il Centro protezione per limitare il caricamento dei componenti aggiuntivi VSTO in Microsoft Office 2013 e Microsoft Office 2010. Queste procedure non influiscono sui componenti aggiuntivi VSTO o sulle personalizzazioni create usando gli strumenti di sviluppo di Office in Visual Studio.
Per disabilitare i componenti aggiuntivi VSTO nelle applicazioni microsoft Office 2010 e Microsoft Office 2013
Scegliere la scheda File .
Scegliere il pulsante ApplicationNameOpzioni.
Nel riquadro categorie scegliere Centro protezione.
Nel riquadro dei dettagli scegliere Impostazioni centro protezione.
Nel riquadro categorie scegliere Componenti aggiuntivi.
Nel riquadro dei dettagli selezionare Richiedi che i componenti aggiuntivi dell'applicazione siano firmati dal server di pubblicazione attendibile o Disabilita tutti i componenti aggiuntivi dell'applicazione.