CA5405: 항상 대리자에서 토큰 유효성 검사를 건너뛰지 않음
속성 | 값 |
---|---|
규칙 ID | CA5405 |
제목 | 항상 대리자에서 토큰 유효성 검사를 건너뛰지 마세요. |
범주 | 보안 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
.NET 9에서 기본적으로 사용 | 아니요 |
할당되거나 항상 반환true
된 AudienceValidator LifetimeValidator 콜백입니다.
항상 true
를 반환하도록 중요한 TokenValidationParameter
유효성 검사 대리자를 설정하면 중요한 인증 보호가 사용되지 않습니다. 보호를 사용하지 않도록 설정하면 특정 발급자의 유효성 검사가 잘못되거나 토큰이 만료될 수 있습니다.
토큰 유효성 검사 모범 사례에 관한 자세한 내용은 라이브러리의 Wiki를 참조하세요.
- 대리자의 논리를 개선하여 일부 코드 경로가
true
를 반환하지 않으면 해당 유형의 유효성 검사가 효과적으로 사용하지 않도록 설정됩니다. - 유효성 검사를 실패하게 하려는 실패 사례에서
SecurityTokenInvalidAudienceException
또는SecurityTokenInvalidLifetimeException
를 throw하고true
를 반환하여 다른 사례는 통과하게 합니다.
추가 로깅에 대리자를 사용하고 특정 유형의 유효성 검사가 필요하지 않은 토큰 형식에 해당하는 일부 특정 사례에서는 이 경고를 표시하지 않는 것이 좋을 수 있습니다. 이 유효성 검사를 사용하지 않도록 설정하기 전에 보안에 미치는 영향을 완전히 파악해야 합니다. 장단점에 관한 내용은 토큰 유효성 검사 라이브러리의 Wiki를 참조하세요.
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
#pragma warning disable CA5405
// The code that's violating the rule is on this line.
#pragma warning restore CA5405
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 구성 파일에서 심각도를 none
으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.CA5405.severity = none
자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.
using System;
using Microsoft.IdentityModel.Tokens;
class TestClass
{
public void TestMethod()
{
TokenValidationParameters parameters = new TokenValidationParameters();
parameters.AudienceValidator = (audiences, token, tvp) => { return true; };
}
}
using System;
using Microsoft.IdentityModel.Tokens;
class TestClass
{
public void TestMethod()
{
TokenValidationParameters parameters = new TokenValidationParameters();
parameters.AudienceValidator = (audiences, token, tvp) =>
{
// Implement your own custom audience validation
if (PerformCustomAudienceValidation(audiences, token))
return true;
else
return false;
};
}
}
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.