Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | CA5397 |
| Cím | Ne használjon elavult SslProtocols-értékeket |
| Kategória | Biztonság |
| A javítás romboló vagy nem romboló | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Nem |
| Alkalmazandó nyelvek | C# és Visual Basic |
Ok
Ez a szabály akkor aktiválódik, ha a következő feltételek valamelyike teljesül:
- System.Security.Authentication.SslProtocols Elavult értékre hivatkoztak.
- Az elavult értéket képviselő egész szám vagy egy SslProtocols változóhoz lett hozzárendelve, visszatérési SslProtocols értékként lett használva, vagy argumentumként SslProtocols lett használva.
Az elavult értékek a következők:
- Ssl2
- Ssl3
- Tls
- Tls10
- Tls11
Szabály leírása
A Transport Layer Security (TLS) biztosítja a számítógépek közötti kommunikációt, leggyakrabban a Hypertext Transfer Protocol Secure (HTTPS) használatával. A TLS régebbi protokollverziói kevésbé biztonságosak, mint a TLS 1.2 és a TLS 1.3, és nagyobb valószínűséggel vannak új biztonsági rések. A kockázat csökkentése érdekében kerülje a régebbi protokollverziókat. Az elavult protokollverziók azonosításával és eltávolításával kapcsolatos útmutatásért tekintse meg a TLS 1.0 probléma 2. kiadásának megoldását.
Szabálysértések kijavítása
Ne használjon elavult TLS protokollverziókat.
Mikor kell letiltani a figyelmeztetéseket?
Ezt a figyelmeztetést a következő esetekben tilthatja le:
- Az elavult protokollverzióra való hivatkozás nem használható az elavult verzió engedélyezéséhez.
- Olyan régi szolgáltatáshoz kell csatlakoznia, amely nem frissíthető biztonságos TLS-konfigurációk használatához.
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 CA5397
// The code that's violating the rule is on this line.
#pragma warning restore CA5397
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.CA5397.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Példák pszeudokódokra
Számbavételi név megsértése
using System;
using System.Security.Authentication;
public class ExampleClass
{
public void ExampleMethod()
{
// CA5397 violation for using Tls11
SslProtocols protocols = SslProtocols.Tls11 | SslProtocols.Tls12;
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Sub ExampleMethod()
' CA5397 violation for using Tls11
Dim sslProtocols As SslProtocols = SslProtocols.Tls11 Or SslProtocols.Tls12
End Sub
End Class
Egész szám értékének megsértése
using System;
using System.Security.Authentication;
public class ExampleClass
{
public void ExampleMethod()
{
// CA5397 violation
SslProtocols sslProtocols = (SslProtocols) 768; // TLS 1.1
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Sub ExampleMethod()
' CA5397 violation
Dim sslProtocols As SslProtocols = CType(768, SslProtocols) ' TLS 1.1
End Sub
End Class
Megoldás
using System;
using System.Security.Authentication;
public class TestClass
{
public void Method()
{
// Let the operating system decide what TLS protocol version to use.
// See https://learn.microsoft.com/dotnet/framework/network-programming/tls
SslProtocols sslProtocols = SslProtocols.None;
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Sub ExampleMethod()
' Let the operating system decide what TLS protocol version to use.
' See https://learn.microsoft.com/dotnet/framework/network-programming/tls
Dim sslProtocols As SslProtocols = SslProtocols.None
End Sub
End Class
Kapcsolódó szabályok
CA5364: Ne használjon elavult biztonsági protokollokat
CA5386: A SecurityProtocolType érték korlátozásának elkerülése
CA5398: Kerülje a hardkódolt SSL-protokollok értékek használatát