Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA5375 |
| Title | Non usare la firma di accesso condiviso dell'account |
| Categoria | Sicurezza |
| La correzione causa un'interruzione o meno | Non causa un'interruzione |
| Abilitato per impostazione predefinita in .NET 10 | No |
Causa
Generazione di una firma di accesso condiviso con l'account con il GetSharedAccessSignature metodo nello spazio dei Microsoft.WindowsAzure.Storage nomi .
Descrizione regola
Una firma di accesso condiviso dell'account può delegare l'accesso alle operazioni di lettura, scrittura ed eliminazione in contenitori BLOB, tabelle, code e condivisioni file non consentite con una firma di accesso condiviso del servizio. Tuttavia, non supporta i criteri a livello di contenitore e ha meno flessibilità e controllo sulle autorizzazioni concesse. Se possibile, usare una firma di accesso condiviso del servizio per un controllo di accesso granulare. Per ulteriori informazioni, vedi Delegating Access with a Shared Access Signature (Delega dell'accesso con una firma di accesso condiviso).
Come correggere le violazioni
Usare una firma di accesso condiviso del servizio anziché una firma di accesso condiviso dell'account per il controllo di accesso con granularità fine e i criteri di accesso a livello di contenitore.
Quando eliminare gli avvisi
È consigliabile eliminare questa regola se si è certi che le autorizzazioni di tutte le risorse siano il più possibile limitate.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA5375
// The code that's violating the rule is on this line.
#pragma warning restore CA5375
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA5375.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Esempi di pseudo-codice
Violazione
Attualmente, l'esempio di pseudo-codice seguente illustra il modello rilevato da questa regola.
using System;
using Microsoft.WindowsAzure.Storage;
class ExampleClass
{
public void ExampleMethod(SharedAccessAccountPolicy policy)
{
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount();
cloudStorageAccount.GetSharedAccessSignature(policy);
}
}
Soluzione
Anziché la firma di accesso condiviso dell'account, usare la firma di accesso condiviso del servizio.
using System;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.File;
class ExampleClass
{
public void ExampleMethod(StorageCredentials storageCredentials, SharedAccessFilePolicy policy, SharedAccessFileHeaders headers, string groupPolicyIdentifier, IPAddressOrRange ipAddressOrRange)
{
CloudFile cloudFile = new CloudFile(storageCredentials);
SharedAccessProtocol protocols = SharedAccessProtocol.HttpsOnly;
cloudFile.GetSharedAccessSignature(policy, headers, groupPolicyIdentifier, protocols, ipAddressOrRange);
}
}