Share via


CA5365: HTTP 헤더 검사를 사용하지 않도록 설정 안 함

속성
규칙 ID CA5365
타이틀 HTTP 헤더 검사를 사용하지 않도록 설정하지 마세요.
범주 보안
수정 사항이 주요 변경인지 여부 주요 변경 아님
.NET 8에서 기본적으로 사용 아니요

원인

EnableHeaderCheckingfalse로 설정합니다.

규칙 설명

HTTP 헤더 검사를 사용하면 응답 헤더에 있는 캐리지 리턴 및 줄 바꿈 문자(\r\n)를 인코딩할 수 있습니다. 이 인코딩을 수행하면 헤더에 포함된 신뢰할 수 없는 데이터를 에코하는 애플리케이션을 악용하는 삽입 공격을 방지할 수 있습니다.

위반 문제를 해결하는 방법

EnableHeaderCheckingtrue로 설정합니다. 또는 기본값이 true이므로 false에 대한 할당을 제거합니다.

경고를 표시하지 않는 경우

HTTP 헤더 연속은 여러 줄에 걸쳐 있는 헤더를 사용하며 새 줄이 필요합니다. 헤더 연속을 사용해야 하는 경우 속성을 false.로 설정 EnableHeaderChecking 해야 합니다. 헤더 검사는 성능에 영향을 미칠 수 있습니다. 이미 올바른 검사를 수행하고 있는 경우 이 기능을 끄면 애플리케이션의 성능이 향상될 수 있습니다. 이 기능을 사용하지 않도록 설정하기 전에 이 영역에서 이미 올바른 예방 조치를 취하고 있는지 확인합니다.

경고 표시 안 함

단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.

#pragma warning disable CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365

파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 구성 파일에서 심각도를 none으로 설정합니다.

[*.{cs,vb}]
dotnet_diagnostic.CA5365.severity = none

자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.

의사 코드 예제

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = false;
    }
}

해결 방법

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = true;
    }
}