Sdílet prostřednictvím


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.