Freigeben über


Warnung C6248

Das Festlegen der DACL eines SECURITY_DESCRIPTOR auf NULL führt zu einem nicht geschützten Objekt.

Hinweise

Wenn die DACL, die zur Sicherheitsbeschreibung eines Objekts gehört, auf NULL festgelegt wird, führt dies zur Erstellung einer NULL-DACL. Eine NULL-DACL gewährt allen Benutzern, die sie anfordert, vollzugriff; Die normale Sicherheitsüberprüfung wird im Hinblick auf das Objekt nicht ausgeführt. Eine NULL-DACL sollte nicht mit einer leeren DACL verwechselt werden. Eine leere DACL ist eine ordnungsgemäß zugeordnete und initialisierte DACL, die keine ACEs enthält. Eine leere DACL gewährt keinen Zugriff auf das Objekt, dem es zugewiesen ist. Objekte mit NULL-DACLs können ihre Sicherheitsdeskriptoren durch böswillige Benutzer verändert haben, sodass niemand Zugriff auf das Objekt hat. Selbst in einer Situation, in der jeder Zugriff auf ein Objekt benötigt, sollten nur Administratoren in der Lage sein, die Sicherheit dieses Objekts zu ändern. Wenn nur der Ersteller Zugriff auf ein Objekt benötigt, sollte eine DACL nicht für das Objekt festgelegt werden. das System wählt einen geeigneten Standardwert aus.

Codeanalysename: CREATINGNULLDACL

Beispiel

Im folgenden Code wird diese Warnung generiert, da eine NULL-DACL an die SetSecurityDescriptorDacl-Funktion übergeben wird:

#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
    }
}

Ein vollständiges Beispiel zum Erstellen von Sicherheitsbeschreibungen finden Sie unter Erstellen eines Sicherheitsdeskriptors für ein neues Objekt in C++. Weitere Informationen zum Erstellen von DACLs finden Sie unter Erstellen einer DACL.