Megosztás a következőn keresztül:


CA5394: Ne használjon nem biztonságos véletlenszerűséget

Tulajdonság Érték
Szabályazonosító CA5394
Cím Ne használjon nem biztonságos véletlenszerűséget
Kategória Biztonság
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

Ok

Az egyik metódus meghívása System.Random .

Szabály leírása

A kriptográfiailag gyenge pszeudo-véletlenszerű számgenerátor használatával a támadó előre jelezheti, hogy milyen biztonsági szempontból érzékeny érték jön létre.

Szabálysértések kijavítása

Ha kiszámíthatatlan értékre van szüksége a biztonsághoz, használjon kriptográfiailag erős véletlenszerű számgenerátort, például System.Security.Cryptography.RandomNumberGenerator vagy System.Security.Cryptography.RNGCryptoServiceProvider.

Mikor kell letiltani a figyelmeztetéseket?

Ha biztos abban, hogy a gyenge pszeudo-véletlenszerű számok nincsenek biztonsági szempontból bizalmas módon használva, nyugodtan letilthatja a szabály figyelmeztetéseit.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

#pragma warning disable CA5394
// The code that's violating the rule is on this line.
#pragma warning restore CA5394

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_diagnostic.CA5394.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Példák pszeudokódokra

Megsértése

using System;

class ExampleClass
{
    public void ExampleMethod(Random random)
    {
        var sensitiveVariable = random.Next();
    }
}

Megoldás

using System;
using System.Security.Cryptography;

class ExampleClass
{
    public void ExampleMethod(int toExclusive)
    {
        var sensitiveVariable = RandomNumberGenerator.GetInt32(toExclusive);
    }
}