다음을 통해 공유


CA5396: HttpCookie에 대해 HttpOnly를 true로 설정

속성
규칙 ID CA5396
타이틀 HttpCookie에 대해 HttpOnly를 true로 설정하세요.
범주 보안
수정 사항이 주요 변경인지 여부 주요 변경 아님
.NET 8에서 기본적으로 사용 아니요

원인

System.Web.HttpCookie.HttpOnlyfalse로 설정됩니다. 이 속성의 기본값은 false입니다.

규칙 설명

심층 방어 수단으로 보안에 중요한 HTTP 쿠키가 HttpOnly로 표시되어 있는지 확인합니다. 이는 웹 브라우저에서 스크립트가 쿠키에 액세스하는 것을 허용하지 않아야 함을 나타냅니다. 삽입된 악성 스크립트는 쿠키를 도용하는 일반적인 방법입니다.

위반 문제를 해결하는 방법

System.Web.HttpCookie.HttpOnlytrue로 설정합니다.

경고를 표시하지 않는 경우

  • 다음 예제와 같이 HttpOnly의 전역 값이 설정된 경우

    <system.web>
        ...
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
    
  • 쿠키에 중요한 데이터가 없는 경우

경고 표시 안 함

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

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

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

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

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

예시

위반:

using System.Web;

class ExampleClass
{
    public void ExampleMethod()
    {
        HttpCookie httpCookie = new HttpCookie("cookieName");
        httpCookie.HttpOnly = false;
    }
}

해결 방법:

using System.Web;

class ExampleClass
{
    public void ExampleMethod()
    {
        HttpCookie httpCookie = new HttpCookie("cookieName");
        httpCookie.HttpOnly = true;
    }
}