C6248
upozornění C6248: nastavení DACL struktury SECURITY_DESCRIPTOR na hodnotu NULL bude mít za následek nechráněný objekt
Toto upozornění identifikuje volání, které nastaví pole DACL struktury SECURITY_DESCRIPTOR na hodnotu null.Pokud je DACL, který patří do popisovače zabezpečení objektu, nastaven na hodnotu NULL, je vytvořen DACL hodnoty null.DACL hodnoty null uděluje plný přístup libovolnému uživateli, který o to požádá; není prováděna běžná bezpečnostní kontrola ve vztahu k objektu.DACL hodnoty null by neměl být zaměňován s prázdným DACL.Prázdný DACL je řádně přidělený a inicializováný DACL, který neobsahuje žádné ACE.Prázdný DACL neuděluje přístup k objektu, ke kterému je přiřazen.
Objekty, které mají DACL hodnoty null, mohou mít své popisovače zabezpečení změněny uživateli se zlými úmysly, takže nikdo nemá přístup k objektu.
I tehdy, kdy přístup k objektu potřebuje každý, by měl být objekt zabezpečen tak, aby pouze správci mohli změnit jeho zabezpečení.Pokud přístup k objektu potřebuje pouze tvůrce, neměl by být DACL na objektu nastaven; systém zvolí vhodné výchozí nastavení.
Příklad
Následující kód vygeneruje toto upozornění, protože je DACL hodnoty null předán funkci SetSecurityDescriptorDacl:
#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
}
}
Kompletní příklad vytvoření popisovače zabezpečení naleznete v Vytvoření popisovače zabezpečení pro nový objekt jazyka C++.Další informace naleznete v Vytvoření DACL.