Bagikan melalui


CA5375: Jangan gunakan tanda tangan akses bersama akun

Properti Nilai
ID Aturan CA5375
Judul Jangan gunakan tanda tangan akses bersama akun
Golongan Keamanan
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Diaktifkan secara default di .NET 8 Tidak

Penyebab

Membuat akun Tanda Tangan Akses Bersama (SAS) dengan GetSharedAccessSignature metode di Microsoft.WindowsAzure.Storage bawah namespace layanan.

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. Tetapi, SAS akun tidak mendukung kebijakan tingkat kontainer dan memiliki lebih sedikit fleksibilitas serta kontrol atas izin yang diberikan. Jika memungkinkan, gunakan SAS layanan untuk kontrol akses menenangkan. Untuk informasi selengkapnya, lihat Delegasi akses dengan tanda tangan akses bersama (SAS).

Cara memperbaiki pelanggaran

Gunakan SAS layanan alih-alih SAS akun untuk kontrol akses terperinci dan kebijakan akses tingkat kontainer.

Kapan harus menekan peringatan

Aman untuk menekan aturan ini jika Anda yakin bahwa izin semua sumber daya 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 sas akun, gunakan layanan 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);
    }
}

CA5376: Gunakan SharedAccessProtocol HttpsOnly

CA5377: Menggunakan kebijakan akses tingkat kontainer