Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA5404 |
| Заголовок | Не отключайте проверки токенов |
| Категория | Безопасность |
| Исправление является критическим или не критическим | неразрывный |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Установка свойств Microsoft.IdentityModel.Tokens.TokenValidationParameters, RequireExpirationTime, ValidateAudience, ValidateIssuer или ValidateLifetime на значение false.
Описание правила
Проверка токенов гарантирует, что при проверке анализируются и проверяются все аспекты. Отключение проверки может привести к появлению брешей в системе безопасности из-за прохождения проверки ненадежными токенами.
Дополнительные сведения о рекомендациях по проверке токенов можно найти на вики-странице библиотеки.
Устранение нарушений
Microsoft.IdentityModel.Tokens.TokenValidationParameters Задайте свойства RequireExpirationTime, ValidateAudience, ValidateIssuer и ValidateLifetime равными true. Или удалите это присваивание значения параметру false, так как он имеет значение по умолчанию true.
Когда лучше отключить предупреждения
В подавляющем большинстве случаев такая валидация необходима для обеспечения безопасности приложения-потребителя. Однако иногда такая проверка не требуется, особенно для нестандартных типов токенов. Перед отключением этой проверки убедитесь, что вы полностью оценили последствия с точки зрения безопасности. Дополнительные сведения о преимуществах и недостатках см. на вики-странице библиотеки проверки токенов.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA5404
// The code that's violating the rule is on this line.
#pragma warning restore CA5404
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA5404.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.
Примеры псевдокода
using System;
using Microsoft.IdentityModel.Tokens;
class TestClass
{
public void TestMethod()
{
TokenValidationParameters parameters = new TokenValidationParameters();
parameters.RequireExpirationTime = false;
parameters.ValidateAudience = false;
parameters.ValidateIssuer = false;
parameters.ValidateLifetime = false;
}
}
Решение
using System;
using Microsoft.IdentityModel.Tokens;
class TestClass
{
public void TestMethod()
{
TokenValidationParameters parameters = new TokenValidationParameters();
parameters.RequireExpirationTime = true;
parameters.ValidateAudience = true;
parameters.ValidateIssuer = true;
parameters.ValidateLifetime = true;
}
}