Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Vlastnost | Hodnota |
|---|---|
| ID pravidla | CA5394 |
| Název | Nepoužívat nezabezpečenou náhodnost |
| Kategorie | Zabezpečení |
| Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
| Povoleno ve výchozím nastavení v .NET 10 | No |
Příčina
Jedna z metod System.Random je vyvolána.
Popis pravidla
Použití kryptograficky slabého generátoru pseudonáhodných čísel může útočníkovi umožnit předpovědět, jaká hodnota bude citlivá na zabezpečení vygenerována.
Jak opravit porušení
Pokud potřebujete nepředvídatelnou hodnotu pro zabezpečení, použijte kryptograficky silný generátor náhodných čísel, například System.Security.Cryptography.RandomNumberGenerator nebo System.Security.Cryptography.RNGCryptoServiceProvider.
Kdy potlačit upozornění
Pokud jste si jistí, že slabá pseudonáhodná čísla se nepoužívají citlivým způsobem zabezpečení, je bezpečné potlačit upozornění z tohoto pravidla.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA5394
// The code that's violating the rule is on this line.
#pragma warning restore CA5394
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA5394.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Příklady pseudokódu
Porušení
using System;
class ExampleClass
{
public void ExampleMethod(Random random)
{
var sensitiveVariable = random.Next();
}
}
Řešení
using System;
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod(int toExclusive)
{
var sensitiveVariable = RandomNumberGenerator.GetInt32(toExclusive);
}
}