Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| 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);
}
}