CA5375: Jangan gunakan tanda tangan akses bersama akun

Properti Nilai
ID Aturan CA5375
Judul Jangan gunakan tanda tangan akses bersama akun
Kategori Keamanan
Perbaikan bersifat merusak atau tidak merusak Tidak terputus
Diaktifkan secara default di .NET 10 Tidak
Bahasa yang berlaku C# dan Visual Basic

Penyebab

Membuat Tanda Tangan Akses Bersama (SAS) untuk akun menggunakan metode GetSharedAccessSignature dalam namespace Microsoft.WindowsAzure.Storage.

Deskripsi aturan

SAS akun dapat mendelegasikan akses untuk membaca, menulis, dan menghapus operasi pada kontainer blob, tabel, antrean, dan berbagi yang tidak diizinkan dengan SAS layanan. Namun, SAS akun tidak mendukung kebijakan di tingkat kontainer dan memiliki fleksibilitas serta kontrol yang lebih rendah atas izin yang diberikan. Jika memungkinkan, gunakan service SAS untuk kontrol akses terperinci. Untuk informasi selengkapnya, lihat Delegasi akses dengan tanda tangan akses bersama (SAS).

Cara memperbaiki pelanggaran

Gunakan Layanan SAS alih-alih Akun SAS untuk kontrol akses yang lebih terperinci dan kebijakan akses tingkat wadah.

Kapan harus menekan peringatan

Aman untuk mengabaikan aturan ini jika Anda yakin bahwa izin semua sumber daya sudah dibatasi sebatas mungkin.

Menyembunyikan peringatan

Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.

#pragma warning disable CA5375
// The code that's violating the rule is on this line.
#pragma warning restore CA5375

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.CA5375.severity = none

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Contoh kode semu

Pelanggaran

Saat ini, sampel pseudo-code berikut menggambarkan pola yang terdeteksi oleh aturan ini.

using System;
using Microsoft.WindowsAzure.Storage;

class ExampleClass
{
    public void ExampleMethod(SharedAccessAccountPolicy policy)
    {
        CloudStorageAccount cloudStorageAccount = new CloudStorageAccount();
        cloudStorageAccount.GetSharedAccessSignature(policy);
    }
}

Solusi

Alih-alih Akun SAS, gunakan SAS Layanan.

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);
    }
}

CA5376: Gunakan SharedAccessProtocol HttpsOnly

CA5377: Menggunakan kebijakan akses tingkat kontainer