Bagikan melalui


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;
    }
}