CA5365: Jangan Nonaktifkan Pemeriksaan Header HTTP
Properti | Nilai |
---|---|
ID Aturan | CA5365 |
Judul | Jangan Nonaktifkan Pemeriksaan Header HTTP |
Golongan | Keamanan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Atur EnableHeaderChecking ke false
.
Deskripsi aturan
Pemeriksaan header HTTP memungkinkan pengodean karakter pengembalian pengangkutan dan baris baru, \r
dan \n
, yang ditemukan di header respons. Pengodean ini dapat membantu menghindari serangan injeksi yang mengeksploitasi aplikasi yang menggemakan data yang tidak tepercaya yang terkandung dalam header.
Cara memperbaiki pelanggaran
Atur EnableHeaderChecking ke true
. Atau, hapus penugasan ke false
karena nilai defaultnya adalah true
.
Kapan harus menekan peringatan
Kelanjutan header HTTP mengandalkan header yang mencakup beberapa baris dan memerlukan baris baru di dalamnya. Jika Anda perlu menggunakan kelanjutan header, Anda perlu mengatur properti ke EnableHeaderCheckingfalse
. Ada dampak performa dari memeriksa header. Jika Anda yakin sudah melakukan pemeriksaan yang tepat, menonaktifkan fitur ini dapat meningkatkan performa aplikasi Anda. Sebelum menonaktifkan fitur ini, pastikan Anda sudah melakukan tindakan pencegahan yang tepat di area ini.
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 CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA5365.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Contoh kode semu
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = false;
}
}
Solusi
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = true;
}
}