Предупреждение C6248
При задании DACL SECURITY_DESCRIPTOR значение NULL приведет к незащищенным объектам.
Замечания
Если daCL, принадлежащий дескриптору безопасности объекта, имеет значение NULL, создается null DACL. Null DACL предоставляет полный доступ любому пользователю, запрашивающему его; обычное проверка безопасности не выполняется в отношении объекта. Не следует путать значение NULL DACL с пустым DACL. Пустой DACL — это правильно выделенный и инициализированный DACL, который не содержит acES. Пустой DACL не предоставляет доступ к объекту, которому он назначен. Объекты, имеющие null DACLs, могут иметь их дескрипторы безопасности, измененные вредоносными пользователями, что делает его таким образом, чтобы никто не имеет доступа к объекту. Даже в ситуации, когда всем требуется доступ к объекту, только администраторы должны иметь возможность изменить безопасность этого объекта. Если только создатель нуждается в доступе к объекту, daCL не должен быть задан в объекте; система выберет соответствующее значение по умолчанию.
Имя анализа кода: CREATINGNULLDACL
Пример
Следующий код создает это предупреждение, так как в функцию SetSecurityDescriptorDacl
передается значение NULL DACL:
#include <windows.h>
void f( PSECURITY_DESCRIPTOR pSecurityDescriptor )
{
if (SetSecurityDescriptorDacl(pSecurityDescriptor,
TRUE, // Dacl Present
NULL, // NULL pointer to DACL
FALSE)) // Defaulted
{
// Dacl is now applied to an object
}
}
Полный пример создания дескриптора безопасности см. в статье "Создание дескриптора безопасности для нового объекта в C++". Дополнительные сведения о создании списков управления доступом см. в разделе "Создание DACL".
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по