Condividi tramite


Distribuzione e sicurezza ClickOnce

Aggiornamento: novembre 2007

Le applicazioni distribuite mediante la tecnologia ClickOnce vengono eseguite in una "sandbox", con un set di autorizzazioni limitato in base a un'area di sicurezza. Nella seguente tabella sono elencate le autorizzazioni predefinite in base al percorso di distribuzione:

Percorso di distribuzione

Area di sicurezza

Esecuzione dal Web

Area Internet

Installazione dal Web

Area Internet

Installazione da una condivisione file in rete

Area Intranet

Installazione da CD

Attendibilità totale

Le autorizzazioni predefinite dipendono dal percorso di distribuzione della versione originale dell'applicazione. Gli eventuali aggiornamenti erediteranno tali autorizzazioni. Se l'applicazione è configurata in modo da controllare la disponibilità degli aggiornamenti in un percorso Web o di rete e viene rilevata la disponibilità di una versione più recente, è possibile che l'installazione originale riceva autorizzazioni per l'area Internet o Intranet anziché autorizzazioni di attendibilità totale. Per evitare che la richiesta venga visualizzata, l'amministratore di sistema può specificare un criterio di distribuzione ClickOnce che definisca uno specifico editore dell'applicazione come fonte attendibile. Per i computer in cui viene distribuito questo criterio, le autorizzazioni verranno concesse automaticamente senza alcun intervento da parte dell'utente.

Sicurezza e autorizzazioni

Uno sviluppatore ha la responsabilità di assicurarsi che l'applicazione venga eseguita con le autorizzazioni appropriate.

Nota:

In Visual Studio è possibile eseguire il debug dell'applicazione all'interno dell'area di sicurezza di destinazione. Vengono inoltre fornite informazioni utili per lo sviluppo di applicazioni sicure.

In alcuni casi, è possibile che un'applicazione ClickOnce richieda autorizzazioni più elevate. Ad esempio, un'applicazione che deve interagire con un foglio di calcolo di Excel potrebbe richiedere autorizzazioni maggiori rispetto a quelle definite per le aree Internet o Intranet. In questo caso, durante l'installazione verrà chiesto all'utente di concedere le autorizzazioni necessarie. Se l'utente accetta, l'applicazione verrà installata. In caso contrario, l'installazione verrà interrotta.

Nota:

Per evitare che la richiesta venga visualizzata, l'amministratore di sistema può specificare un criterio di distribuzione ClickOnce che definisca uno specifico editore dell'applicazione come fonte attendibile. Sui computer in cui viene distribuito questo criterio, le autorizzazioni verranno concesse automaticamente senza alcun intervento da parte dell'utente.

Le autorizzazioni assegnate a un'applicazione dipendono dalle impostazioni nell'Elemento <trustInfo> (applicazione ClickOnce) del manifesto dell'applicazione. In Visual Studio queste informazioni vengono generate automaticamente in base alle impostazioni nella pagina delle proprietà Sicurezza del progetto. A un'applicazione ClickOnce vengono concesse solo le autorizzazioni specifiche richieste. Ad esempio, se per l'accesso ai file sono necessarie autorizzazioni di attendibilità totale, ma l'applicazione richiede solo l'autorizzazione di accesso ai file, verrà concessa solo questa autorizzazione e non quelle di attendibilità totale. Durante lo sviluppo dell'applicazione ClickOnce è consigliabile assicurarsi di richiedere solo le autorizzazioni effettivamente necessarie per l'applicazione.

Si consiglia, inoltre, di firmare il manifesto di distribuzione mediante la tecnologia Authenticode. Durante l'installazione, le informazioni sull'editore basate sulla firma Authenticode verranno visualizzate nella finestra di dialogo Autorizzazioni, per dimostrare all'utente che l'applicazione proviene da una fonte attendibile. In Windows Software Development Kit (SDK) è incluso uno strumento per la firma digitale Strumento per la firma (SignTool.exe) che consente di firmare il manifesto. Lo strumento firma digitale signcode.exe è obsoleto.

Nota:

La funzionalità di firma, disponibile in Visual Studio 2003 e nelle versioni precedenti, è stata rimossa dai progetti di Installazione e distribuzione (Progetto di installazione, Progetto di installazione Web, Progetto CAB e Progetto Modulo unione). Se si importa un progetto di Visual Studio 2003 con la firma attivata in Visual Studio 2005 o si desidera attivare la firma per il progetto di distribuzione, sarà necessario firmare i file nell'output di compilazione con lo Strumento per la firma (SignTool.exe) in una fase successiva alla compilazione. Per informazioni su tale procedura, vedere Il file '<file>' non è stato firmato.

Autenticazione basata su form ASP.NET

Se si desidera controllare le distribuzioni cui può accedere ciascun utente, è consigliabile non consentire l'accesso anonimo alle applicazioni ClickOnce distribuite su un server Web. La soluzione migliore consiste nel concedere agli utenti l'accesso alle distribuzioni installate in base all'identità, utilizzando l'autenticazione Windows NT.

Se si esegue la distribuzione in un ambiente in cui l'autenticazione Windows NT non è disponibile, è possibile provare a utilizzare in alternativa l'autenticazione basata su form ASP.NET per autenticare l'utente. ClickOnce tuttavia non supporta l'autenticazione basata su form poiché utilizza cookie permanenti. Questi comportano un rischio di sicurezza poiché rimangono nella cache di Internet Explorer e sono quindi vulnerabili ad attacchi di pirateria. Se pertanto si distribuiscono applicazioni ClickOnce, non è supportato alcuno scenario di autenticazione se non l'autenticazione Windows NT.

Passaggio di argomenti

Se si desidera passare argomenti a un'applicazione ClickOnce, possono verificarsi ulteriori problemi di sicurezza. ClickOnce consente agli sviluppatori di fornire una stringa di query alle applicazioni distribuite sul Web. La stringa di query è una serie di coppie nome/valore aggiunte alla fine dell'URL utilizzato per avviare l'applicazione:

http://server1.adatum.com/WindowsApp1.application?username=utenterossi

Gli argomenti delle stringhe di query sono disattivati per impostazione predefinita. Per attivarli, nel manifesto di distribuzione dell'applicazione deve essere impostato l'attributo trustUrlParameters. Questo valore può essere impostato da Visual Studio e da MageUI.exe. Per passaggi dettagliati sull'attivazione del passaggio delle stringhe di query, vedere Procedura: recuperare informazioni sulle stringhe di query in un'applicazione ClickOnce.

Non passare mai argomenti recuperati tramite una stringa di query direttamente a un database o alla riga di comando senza verificare che gli argomenti siano sicuri. Sono considerati non sicuri gli argomenti che includono caratteri di escape di database o da riga di comando che possono consentire a un utente malintenzionato di modificare l'applicazione eseguendo comandi arbitrari.

Nota:

Gli argomenti delle stringhe di query sono l'unico modo per passare argomenti a un'applicazione ClickOnce all'avvio. Non è possibile passare argomenti a un'applicazione ClickOnce dalla riga di comando.

Distribuzione di assembly offuscati

È possibile offuscare l'applicazione con Dotfuscator per impedire ad altri utenti di decodificare il codice. L'offuscamento degli assembly tuttavia non è integrato nel processo di distribuzione dell'IDE Visual Studio o ClickOnce. Sarà necessario pertanto eseguire l'offuscamento al di fuori del processo di distribuzione, eventualmente utilizzando un passaggio di post-compilazione. Dopo aver generato il progetto, eseguire manualmente i passaggi seguenti al di fuori di Visual Studio:

  1. Eseguire l'offuscamento utilizzando Dotfuscator. Per ulteriori informazioni, vedere Procedura dettagliata: distribuzione manuale di un'applicazione ClickOnce.

  2. Utilizzare Mage.exe o MageUI.exe per generare i manifesti ClickOnce e firmarli. Per ulteriori informazioni, vedere Strumento per la generazione e la modifica di manifesti (Mage.exe) e Strumento per la generazione e la modifica di manifesti con interfaccia grafica (MageUI.exe).

  3. Pubblicare manualmente (copiare) i file nel percorso di origine della distribuzione, ovvero nel server Web, nella condivisione UNC o su CD-ROM.

Vedere anche

Concetti

Scelta di una strategia di distribuzione

Scelta di una strategia di distribuzione ClickOnce

Riferimenti

Strumento firma digitale (Signcode.exe)

Altre risorse

Distribuzione ClickOnce