C6248
Aviso C6248: definição de DACL de um SECURITY_DESCRIPTOR como NULL resultará em um objeto desprotegido
Este aviso identifica uma chamada que define o campo DACL de um SECURITY_DESCRIPTOR como null.Se a DACL ao qual pertence o descritor de segurança de um objeto é definida como nulo, nulo DACL é criado.Uma DACL null concede acesso total a qualquer usuário que solicita-lo. a verificação de segurança normal não é realizada com relação ao objeto.Uma DACL null não deve ser confundida com uma DACL vazia.Uma DACL vazia é uma DACL alocada e corretamente inicializada que não contém nenhum ACEs.Uma DACL vazia não concede nenhum acesso ao objeto a que é atribuído.
Objetos que possuem DACLs null podem ter os descritores de segurança alterados por usuários mal-intencionados para que ninguém tenha acesso ao objeto.
Mesmo que todos precisam de acesso a um objeto, o objeto deve ser protegido, de modo que somente os administradores podem alterar a sua segurança.Se apenas o criador precisa acessar um objeto, uma DACL não deve ser definida no objeto; o sistema escolherá um padrão apropriado.
Exemplo
O código a seguir gera este aviso porque um null DACL é passado para o SetSecurityDescriptorDacl função:
#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 a criação de uma DACL.