Domanda

Quando creo un'applicazione ASP.NET Azure, per livello di default .NET fiducia è la fiducia completa. Ho sempre cambiare a Windows Azure attendibilità parziale che è simile al livello di attendibilità medio di ASP.NET.

È possibile farlo sia usando GUI quando si seleziona Proprietà sul ruolo o impostando enableNativeCodeExecution su false nel file di definizione (.csdef) come di seguito:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

Come sviluppatore consapevole di sicurezza che voglio per impostazione predefinita per eseguire la mia applicazione in modalità di attendibilità parziale che fornisce un livello di sicurezza più elevato. Se ho bisogno di usare qualcosa come riflessione o P / Invoke, come sviluppatore voglio prendere la decisione di abbassare il livello di fiducia che da solo.

Sono sicuro che c'è un motivo per cui Microsoft ha deciso di utilizzare la fiducia completa come un livello di attendibilità predefinito di .NET, ho appena riesco a vederlo. Se si conosce il motivo, o si pensa di sapere, per favore fatemelo sapere.

È stato utile?

Soluzione

fiducia completa, non è necessario solo per P / Invoke per la riflessione NET pure. Di conseguenza linea di fondo, le applicazioni di dimensioni quasi tutti moderatamente bisogno di pieno di fiducia perché quasi tutte le biblioteche diffuse bisogno troppo (NHibernate per esempio). In realtà, mi è stato chiesto dal esatto opposto domanda sul forum Azure troppo.

Altri suggerimenti

La questione di fiducia totale o parziale riguarda l'ambiente in cui l'applicazione viene eseguita. Il controllo di più e / o di "proprietà" dell'ambiente e le assemblee che hai, la più accettabile è di avere impostazioni di pieno-trust.

Ad esempio, se si crea un sito web Azure (luglio 2012 la capacità) e, imitando wordpress o Umbraco, il vostro sito web consente plugin assemblaggio arbitrari per essere scaricati e installati, quindi è importante avere un ambiente parzialmente attendibile. E 'possibile che uno dei plugin scaricato ed eseguito, che non controllo o proprie, contiene malware. Non solo questo impatto la sicurezza e la stabilità del vostro sito web, ma alcuni possono sostenere gli impatti altro (multi-tenant) ha ospitato siti web che non hanno alcuna relazione con la vostra.

Di certo il vostro sito web si baserà su biblioteche 3rd party, come Log4Net o StructureMap, ma quelli sono estremamente noto e le librerie che non sono in questione per quanto riguarda il loro impatto sulla sicurezza controllati. Ergo, se si esegue un web-ruolo di Azure (una molto meno "multi-tenant" tipo vicenda) e si stanno semplicemente eseguendo tale "fiducia" applicazioni 3rd party, allora non c'è davvero un problema con la corsa come full-trust.

Sì, purtroppo è ancora molto difficile (se non impossibile) di scrivere grandi applicazioni .NET che girano in attendibilità parziale.

Abbiamo bisogno di molto meglio la tecnologia e gli strumenti (come CAS.NET)

A causa Medium Trust è ora ufficialmente obsoleta. Se si avvia un nuovo progetto Web in Visual Studio, richiede già Fiducia completa (e non funziona attendibilità parziale). Microsoft dice: Non dipende Medium Trust, invece, utilizzare Full Trust, e isolare le applicazioni non attendibili in pool di applicazioni separati

.

Fonti:

StackOverflow risposta: Citato risposta team di ASP.NET

Microsoft: ASP.NET attendibilità parziale non garantisce l'isolamento delle applicazioni

Microsoft: ASP.NET migliori pratiche di sviluppo web

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top