CA5364: Jangan gunakan protokol keamanan yang tidak digunakan lagi
Properti | Nilai |
---|---|
ID Aturan | CA5364 |
Judul | Jangan gunakan protokol keamanan yang tidak digunakan lagi |
Golongan | Keamanan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Aturan ini diaktifkan ketika salah satu kondisi berikut terpenuhi:
- Nilai yang tidak digunakan System.Net.SecurityProtocolType lagi direferensikan.
- Nilai bilangan bulat yang mewakili nilai yang tidak digunakan lagi ditetapkan ke SecurityProtocolType variabel.
Nilai yang tidak digunakan lagi adalah:
- Ssl3
- Tls
- Tls10
- Tls11
Deskripsi aturan
Keamanan Lapisan Transportasi (TLS) mengamankan komunikasi antar komputer, paling umum dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS yang lebih lama kurang aman dibandingkan TLS 1.2 dan TLS 1.3 dan lebih cenderung memiliki kerentanan baru. Hindari versi protokol yang lebih lama untuk meminimalkan risiko. Untuk panduan tentang mengidentifikasi dan menghapus versi protokol yang tidak digunakan lagi, lihat Memecahkan Masalah TLS 1.0, Edisi ke-2.
Cara memperbaiki pelanggaran
Jangan gunakan versi protokol TLS yang tidak digunakan lagi.
Kapan harus menekan peringatan
Anda dapat menekan peringatan ini jika:
- Referensi ke versi protokol yang tidak digunakan lagi tidak digunakan untuk mengaktifkan versi yang tidak digunakan lagi.
- Anda perlu terhubung ke layanan warisan yang tidak dapat ditingkatkan untuk menggunakan konfigurasi TLS yang aman.
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA5364
// The code that's violating the rule is on this line.
#pragma warning restore CA5364
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA5364.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Contoh kode semu
Pelanggaran nama enumerasi
using System;
using System.Net;
public class ExampleClass
{
public void ExampleMethod()
{
// CA5364 violation
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
}
}
Imports System
Imports System.Net
Public Class TestClass
Public Sub ExampleMethod()
' CA5364 violation
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
End Sub
End Class
Pelanggaran nilai bilangan bulat
using System;
using System.Net;
public class ExampleClass
{
public void ExampleMethod()
{
// CA5364 violation
ServicePointManager.SecurityProtocol = (SecurityProtocolType) 768; // TLS 1.1
}
}
Imports System
Imports System.Net
Public Class TestClass
Public Sub ExampleMethod()
' CA5364 violation
ServicePointManager.SecurityProtocol = CType(768, SecurityProtocolType) ' TLS 1.1
End Sub
End Class
Solusi
using System;
using System.Net;
public class TestClass
{
public void TestMethod()
{
// Let the operating system decide what TLS protocol version to use.
// See https://learn.microsoft.com/dotnet/framework/network-programming/tls
}
}
Imports System
Imports System.Net
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
End Sub
End Class
Aturan terkait
CA5386: Hindari mengodekan nilai SecurityProtocolType secara permanen
CA5397: Jangan gunakan nilai SslProtocols yang tidak digunakan lagi
CA5398: Hindari nilai SslProtocols yang dikodekan secara permanen