C6248
Aktualisiert: November 2007
C6248
Warnung C6248: Das Festlegen von DACL für einen SECURITY_DESCRIPTOR auf NULL hat ein ungeschütztes Objekt zur Folge.
Diese Warnung identifiziert einen Aufruf, der das DACL-Feld für einen SECURITY_DESCRIPTOR auf NULL festlegt. 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 jedem Benutzer den vollen Zugriff, wenn dieser angefordert wird; in Bezug auf das Objekt wird keine normale Sicherheitsüberprüfung durchgeführt. Eine NULL-DACL darf 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 sie zugewiesen ist.
Bei Objekten mit NULL-DACLs können die zugehörigen Sicherheitsbeschreibungen von böswilligen Benutzern geändert werden, sodass niemand auf das Objekt zugreifen kann.
Auch wenn alle Benutzer auf ein Objekt zugreifen müssen, sollte das Objekt so geschützt sein, dass nur Administratoren die Sicherheit des Objekts ändern können. Wenn nur der Ersteller des Objekts auf das Objekt zugreifen muss, sollte für das Objekt keine DACL festgelegt werden. Das System wählt dann die entsprechende Standardeinstellung aus.
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 einer Sicherheitsbeschreibung finden Sie unter Creating a Security Descriptor for a New Object in C++.