2009-06-26 21 views
14

See è anche “Code Access Security” of any real world use?Sicurezza accesso codice .NET: utile o semplicemente complicata?

voglio ottenere alcune altre opinioni su questo ...

Mi piace l'idea di protezione dall'accesso di codice per le applicazioni desktop. Ma nella vita di .NET devo ammettere che non ho mai avuto una situazione in cui CAS abbia effettivamente bloccato qualcosa a mio vantaggio.

Ho, tuttavia, avuto molte volte in cui qualcosa di semplice come la condivisione di un'applicazione .NET veloce su un'unità mappata diventa un incubo di accesso al codice aziendale. Avere a che fare con caspol.exe per creare regole di percorso affidabili e non aver chiaro il motivo per cui qualcosa non funziona, sembra che CAS aggiunga più frustrazione al processo di sviluppo e distribuzione di quanto non offra nella sicurezza.

Mi piacerebbe sentire o alcune situazioni in cui CAS ha effettivamente aiutato più che ferire, o se ci sono altre persone là fuori frustrate con la sua attuale implementazione e le impostazioni predefinite.

+0

C'è una patch per .net 3.5 che risolve specificamente il problema di CAS su un'unità di rete –

risposta

7

Il team .NET è arrivato alla stessa conclusione che la sicurezza di accesso all'assembly viene rielaborata per .NET # 4. Date un'occhiata a questo blog per ulteriori informazioni: .NET Security blog

4

Qui, qui! Ho condiviso molte delle stesse frustrazioni. E, naturalmente, l'eccessiva complicanza e la pessima documentazione in pratica incoraggiano gli sviluppatori a scavalcarlo o ad usare regole troppo ampie. La sicurezza sarà sempre dura per chiunque, ma CAS è davvero difficile da fare bene.

+1

Buon punto. Dopo aver battuto la tua testa contro il muro abbastanza e solo tutto fino a "Full Trust" l'intero punto ad esso è sconfitto ... – Brandon

1

Ho avuto a che fare con CAS ma non era troppo difficile dato che dovevo solo distribuirlo su una dozzina di postazioni di lavoro. È anche possibile esportare le impostazioni richieste tramite i Criteri di gruppo.

Ma per rispondere alla tua domanda, no, non credo che abbia mai aiutato.

Guardando al lato positivo, tuttavia, a partire da .NET 3.5 è possibile eseguire app su una condivisione di rete senza CAS.

+0

Non sapevo che hanno fatto quel cambiamento in 3.5 .. è 3.5 o 3.5 SP1? – Brandon

+0

SP 1 in base a questo: http: //stackoverflow.com/questions/221689/net-3-5-sp1-network-shares-allow-exe-application-to-run Non ho provato personalmente. –

0

Dopo molte ricerche mi sono imbattuto su questo blog da parte del team CLR, che non solo conferma che il CAS sta andando via in .NET 4, ma dà anche una grande guida cosa si romperà e come migrare verso il nuovo modello sandbox: New Security Model: Moving to a Better Sandbox. Dall'articolo:

Nelle versioni di Net Framework prima v4, abbiamo avuto molti modi per limitare le permessi di un assemblaggio o anche certo percorso di codice all'interno del gruppo:

  1. Pila -Walk modificatori: Nega, PermitOnly

  2. richieste a livello di Assemblea: RequestOptional, RequestRefuse, RequestMinimum

  3. 012.
  4. Cambiamenti di criterio: caspol e AppDomain.SetPolicyLevel

  5. Caricamento un assieme con una zona diversa MyComputer

In passato, queste API sono stati un fonte di confusione host e applicazioni scrittori. In .Net Framework 4, questi metodi di limitazione delle autorizzazioni sono contrassegnati come obsoleti e noi speriamo di rimuoverli in un punto nel futuro .

Più doloroso è il fatto che tutti questi metodi deprecati di creazione di una sandbox inizieranno a lanciare un NotSupportedException. Questo è eccezionalmente precario per qualsiasi povera anima (come me) che per qualsiasi motivo sia necessario per implementare CAS nella propria organizzazione in questo momento. Sei stato avvertito.

Problemi correlati