Avertissement C6248

La définition d’une liste de contrôle dacl d’un SECURITY_DESCRIPTOR sur NULL entraîne la protection d’un objet non protégé.

Notes

Si la liste DACL qui appartient au descripteur de sécurité d’un objet a la valeur NULL, une liste DACL null est créée. Une liste DACL null accorde un accès complet à tout utilisateur qui le demande ; la sécurité normale case activée ing n’est pas effectuée par rapport à l’objet. Une liste DACL null ne doit pas être confondue avec une liste DACL vide. Une liste DACL vide est une liste DACL correctement allouée et initialisée qui ne contient pas d’ACL. Une liste DACL vide n’accorde aucun accès à l’objet auquel il est affecté. Les objets qui ont des DACL null peuvent avoir leurs descripteurs de sécurité modifiés par des utilisateurs malveillants, ce qui en fait qu’aucun utilisateur n’a accès à l’objet. Même dans une situation où tout le monde a besoin d’accéder à un objet, seuls les administrateurs doivent être en mesure de modifier la sécurité de cet objet. Si seul le créateur a besoin d’accéder à un objet, une liste dacl ne doit pas être définie sur l’objet ; le système choisit une valeur par défaut appropriée.

Nom de l’analyse du code : CREATINGNULLDACL

Exemple

Le code suivant génère cet avertissement, car une liste DACL null est passée à la SetSecurityDescriptorDacl fonction :

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

Pour voir un exemple complet sur la création d’un descripteur de sécurité, consultez Création d’un descripteur de sécurité pour un nouvel objet en C++. Pour plus d’informations sur la création de DLL, consultez Création d’une liste daCL.