CA5394: Güvenli olmayan rastgelelik kullanmayın
Özellik | Değer |
---|---|
Kural Kimliği | CA5394 |
Başlık | Güvenli olmayan rastgelelik kullanma |
Kategori | Güvenlik |
Hataya neden olan veya bozulmayan düzeltme | Hataya neden olmayan |
.NET 9'da varsayılan olarak etkin | Hayır |
yöntemlerinden System.Random biri çağrılır.
Kriptografik olarak zayıf bir sahte rastgele sayı oluşturucu kullanmak, saldırganın hangi güvenlik duyarlı değerin oluşturulacağını tahmin etmesine olanak tanıyabilir.
Güvenlik için öngörülemeyen bir değere ihtiyacınız varsa veya System.Security.Cryptography.RandomNumberGeneratorgibi System.Security.Cryptography.RNGCryptoServiceProvider şifreleme açısından güçlü bir rastgele sayı oluşturucu kullanın.
Zayıf sahte rastgele sayıların güvenliğe duyarlı bir şekilde kullanılmayağından eminseniz, bu kuraldan gelen uyarıları gizlemeniz güvenlidir.
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable CA5394
// The code that's violating the rule is on this line.
#pragma warning restore CA5394
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.CA5394.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.
using System;
class ExampleClass
{
public void ExampleMethod(Random random)
{
var sensitiveVariable = random.Next();
}
}
using System;
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod(int toExclusive)
{
var sensitiveVariable = RandomNumberGenerator.GetInt32(toExclusive);
}
}
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: