CA5363: 요청 유효성 검사를 사용하지 않도록 설정하지 마세요.

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

원인

특성 ValidateInput은 클래스 또는 메서드에 대해 false로 설정됩니다.

규칙 설명

요청 유효성 검사는 HTTP 요청을 검사하고 교차 사이트 스크립팅 등 삽입 공격으로 이어질 수 있는 잠재적으로 위험한 콘텐츠가 포함되어 있는지 확인하는 ASP.NET의 기능입니다.

위반 문제를 해결하는 방법

ValidateInput 특성을 true로 설정하거나 이를 완전히 삭제합니다. 또는 AllowHTMLAttribute를 사용하여 입력의 특정 부분에서 HTML을 허용합니다.

경고를 표시하지 않는 경우

들어오는 HTTP 요청의 모든 페이로드가 신뢰할 수 있는 엔터티에서 제공되고 전송 전 또는 전송 중에 악의적 사용자에 의해 변조될 수 없는 경우 이 위반을 표시하지 않을 수 있습니다.

경고 표시 안 함

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

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

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

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

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

의사 코드 예제

위반

다음 의사 코드 샘플에서는 이 규칙에 의해 탐지되는 패턴을 보여 줍니다. 이는 인해 입력 유효성 검사를 사용하지 않도록 설정합니다.

using System.Web.Mvc;

class TestControllerClass
{
    [ValidateInput(false)]
    public void TestActionMethod()
    {
    }
}

해결 방법

using System.Web.Mvc;

class TestControllerClass
{
    [ValidateInput(true)]
    public void TestActionMethod()
    {
    }
}