2009-07-08 12 views
5

Si verificano errori di binding degli assembly dovuti a autorizzazioni insufficienti per la cartella dei file temporanei ASP.NET.Le autorizzazioni di scrittura dell'utente nella cartella File ASP.NET temporanei pongono problemi di sicurezza?

L'applicazione utilizza l'autenticazione Forms (web.config) con Impersonate = True e IIS Integrated Authentication di Windows.

In base a ASP.NET Identity Matrix, ciò significa che WindowsIdentity viene risolto in Dominio \ NomeUtente e in base a ASP.NET Required Access Control Lists (ACLs), WindowsIdentity richiede autorizzazioni di lettura/scrittura per la cartella File ASP.NET temporaneo.

Utilizzando il visualizzatore di log Fusion, posso confermare che l'errore del binding dell'assembly è dovuto a Domain \ UserName (appartenente al gruppo "Users" in sicurezza) che dispone solo delle autorizzazioni di lettura per questa cartella, ma non delle autorizzazioni di scrittura.

Le domande sono:

Esistono implicazioni di sicurezza di assegnazione di autorizzazioni di scrittura alla cartella Temporary Files ASP.Net?

Questa modifica alla configurazione del server viene comunemente utilizzata? In caso contrario, perché WindowsIdentity dovrebbe risolvere Domain \ UserName per questa combinazione di impostazioni di web.config o questa combinazione non dovrebbe essere utilizzata in questo contesto?

Nota: il problema si verifica solo se un utente non amministratore è il primo a premere la pagina. Se l'assembly è già stato compilato e memorizzato in file ASP.NET temporanei a causa di un utente amministratore che ha colpito la pagina, non ci sono problemi per gli utenti successivi. NON desidero posizionare gli assembly nel GAC.

+0

È questo IIS6 o IIS7? – Kev

risposta

1

ASP.NET richiede il permesso di scrittura per la cartella di file ASP.NET temporanea, non dovrebbe costituire un rischio per la sicurezza, fornendo solo l'autorizzazione per quella cartella e non superiore in quanto si trova all'interno della cartella c: \ windows.

Questo MSDN article about securing ASP.NET applications consiglia di assegnare il controllo completo alla directory di compilazione temporanea all'identità del processo ASP.NET. Ho citato la sezione pertinente:

Per impostazione predefinita, i file temporanei vengono creati e compilati nella seguente directory:

% winnt% \ Microsoft.NET \ Framework versione {} \ file temporanei di ASP.NET

È possibile specificare il percorso in base all'applicazione utilizzando l'attributo tempDirectory, sebbene ciò non offra alcun vantaggio in termini di sicurezza.

Nota L'identità di processo ASP.NET specificata sull'elemento richiede i diritti di accesso Controllo completo nella directory di compilazione temporanea.

+0

(È necessario aggiungere "msdn" nella parte anteriore del collegamento.) Sì, ma in questo caso, le impostazioni web.config significano che DOMAIN \ User (rappresentazione configurata) richiede l'accesso in scrittura e la domanda riguardava specificamente quali implicazioni di sicurezza questo potrebbe avere. Il processo ASP.NET non sta figurando come parte dell'associazione di assembly. –

Problemi correlati