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