Condividi tramite


CA2103: Controllare la sicurezza imperativa

TypeName

ReviewImperativeSecurity

CheckId

CA2103

Category

Microsoft.Security

Breaking Change

Breaking

Causa

Un metodo utilizza la sicurezza imperativa e potrebbe costruire l'autorizzazione tramite le informazioni sullo stato o i valori restituiti che possono essere modificati mentre la richiesta è attiva.

Descrizione della regola

La sicurezza imperativa utilizza oggetti gestiti per specificare autorizzazioni e azioni di sicurezza durante l'esecuzione del codice, a differenza della sicurezza dichiarativa che utilizza attributi per archiviare autorizzazioni e azioni in metadati. La sicurezza imperativa è estremamente flessibile poiché è possibile impostare lo stato di un oggetto autorizzazioni e selezionare azioni di sicurezza utilizzando informazioni non disponibili fino alla fase di esecuzione. Tale flessibilità comporta il rischio che le informazioni della fase di runtime utilizzate per determinare lo stato di un'autorizzazione non rimangano invariate mentre l'azione è in corso.

Utilizzare la sicurezza dichiarativa quando possibile. Le richieste dichiarative sono più semplici da comprendere.

Come correggere le violazioni

Rivedere le richieste di sicurezza imperative per verificare che lo stato dell'autorizzazione non si basi su informazioni che possono essere modificate mentre l'autorizzazione è in uso.

Esclusione di avvisi

L'esclusione di un avviso da questa regola è un'operazione sicura se l'autorizzazione non è basata sulla modifica di dati. È, tuttavia, preferibile modificare la richiesta imperativa nel relativo equivalente dichiarativo.

Vedere anche

Concetti

Linee guida per la generazione di codice sicuro

Altre risorse

Accesso ai dati e modellazione