C6248

aviso C6248: A configuração de um DACL SECURITY_DESCRIPTOR para NULO resultará em um objeto desprotegido

Este aviso identifica uma chamada que define o campo DACL de um SECURITY_DESCRIPTOR para nulo.Se o DACL que pertence ao descritor de segurança de um objeto for definido como NULO, um DACL nulo é criado.DACL nulo concede acesso completo a qualquer usuário que o solicitar; a verificação normal de segurança não é executada em relação ao objeto.DACL zero não deve ser confundido com um DACL vazio.Um DACL vazio é corretamente atribuído e inicializado sem conter ACEs.Um DACL vazio não concede acesso ao objeto ao qual está atribuído.

Os objetos que possuem DACLs nulas podem ter seus descritores de segurança modificados por usuários mal-intencionados de modo que ninguém tenha acesso ao objeto.

Mesmo se todos precisarem ter acesso a um objeto, o objeto deve ser protegido de modo que apenas os administradores possam modificar sua segurança.Se apenas o criador precisar de acesso a um objeto, o DACL não deve ser definido no objeto; o sistema escolherá uma opção apropriada.

Exemplo

O código a seguir gerencia este aviso, pois um DACL nulo é passado para a função 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
    }
}

Para ver um exemplo completo sobre como criar o descritor de segurança, consulte Criando um descritor de segurança para um novo objeto em C++.Para obter mais informações, consulte Criando um DACL.