Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschappen | Weergegeven als | 
|---|---|
| Regel-id | CA5375 | 
| Titel | Gedeelde toegangshandtekening voor accounts niet gebruiken | 
| Categorie | Beveiliging | 
| Oplossing is brekend of niet-brekend | Niet-brekend | 
| Standaard ingeschakeld in .NET 9 | Nee | 
Oorzaak
Het genereren van een account Shared Access Signature (SAS) met de GetSharedAccessSignature methode onder de Microsoft.WindowsAzure.Storage naamruimte.
Beschrijving van regel
Een account-SAS kan de toegang tot lees-, schrijf- en verwijderbewerkingen delegeren voor blobcontainers, tabellen, wachtrijen en bestandsshares die niet zijn toegestaan met een service-SAS. Het biedt echter geen ondersteuning voor beleid op containerniveau en heeft minder flexibiliteit en controle over de machtigingen die worden verleend. Gebruik indien mogelijk een service-SAS voor fijnmazig toegangsbeheer. Zie Toegang delegeren met een handtekening voor gedeelde toegang voor meer informatie.
Schendingen oplossen
Gebruik een service-SAS in plaats van een account-SAS voor fijnmazige toegangsbeheer en toegangsbeleid op containerniveau.
Wanneer waarschuwingen onderdrukken
Het is veilig om deze regel te onderdrukken als u zeker weet dat de machtigingen van alle resources zo beperkt mogelijk zijn.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5375
// The code that's violating the rule is on this line.
#pragma warning restore CA5375
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5375.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Voorbeelden van pseudocode
Schending
Op dit moment illustreert het volgende pseudocodevoorbeeld het patroon dat door deze regel is gedetecteerd.
using System;
using Microsoft.WindowsAzure.Storage;
class ExampleClass
{
    public void ExampleMethod(SharedAccessAccountPolicy policy)
    {
        CloudStorageAccount cloudStorageAccount = new CloudStorageAccount();
        cloudStorageAccount.GetSharedAccessSignature(policy);
    }
}
Oplossing
Gebruik service-SAS in plaats van account-SAS.
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);
    }
}