CA5398: A merevlemezes SslProtocols értékek elkerülése
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA5398 |
Cím | A hardcoded SslProtocols értékek elkerülése |
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
Ez a szabály akkor aktiválódik, ha a következő feltételek valamelyike teljesül:
- Egy biztonságos, de merevlemezes System.Security.Authentication.SslProtocols értékre hivatkoztak.
- A biztonságos protokollverziót jelképező egész szám egy változóhoz SslProtocols lett hozzárendelve, visszatérési SslProtocols értékként, vagy argumentumként SslProtocols lett használva.
Széf értékek a következők:
- Tls12
- Tls13
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 1.0 és a TLS 1.1 protokollverzió elavult, míg a TLS 1.2 és a TLS 1.3 aktuális. A jövőben a TLS 1.2 és a TLS 1.3 elavult lehet. Annak érdekében, hogy az alkalmazás biztonságos maradjon, kerülje a protokollverziók keménykódolását. További információkért lásd a Transport Layer Security (TLS) ajánlott eljárásait .NET-keretrendszer.
Szabálysértések kijavítása
Ne kódolja a TLS protokollverziókat.
Mikor kell letiltani a figyelmeztetéseket?
Biztonságosan letilthatja a figyelmeztetést, ha olyan örökölt szolgáltatáshoz kell csatlakoznia, amely nem frissíthető a jövőbeli TLS protokollverzió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 CA5398
// The code that's violating the rule is on this line.
#pragma warning restore CA5398
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.CA5398.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()
{
// CA5398 violation
SslProtocols sslProtocols = SslProtocols.Tls12;
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Function ExampleMethod() As SslProtocols
' CA5398 violation
Return SslProtocols.Tls12
End Function
End Class
Egész szám értékének megsértése
using System;
using System.Security.Authentication;
public class ExampleClass
{
public SslProtocols ExampleMethod()
{
// CA5398 violation
return (SslProtocols) 3072; // TLS 1.2
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Function ExampleMethod() As SslProtocols
' CA5398 violation
Return CType(3072, SslProtocols) ' TLS 1.2
End Function
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: