C6248
avviso C6248: l'impostazione di un elenco DACL di SECURITY_DESCRIPTOR su NULL determinerà la mancata protezione di un oggetto
L'avviso identifica una chiamata che imposta un campo dell'elenco DACL di SECURITY_DESCRIPTOR su Null. Se il DACL che appartiene al descrittore di sicurezza di un oggetto è impostato su NULL, viene creato un DACL null. Un DACL null assicura accesso a tutti gli utenti che lo richiedono; il normale controllo di sicurezza sull'oggetto non viene eseguito. Non confondere un DACL null con un DACL vuoto. Per DACL vuoto si intende un DACL correttamente allocato e inizializzato che non contiene ACE. Un DACL vuoto non concede accesso all'oggetto a cui è assegnato.
È possibile che i descrittori di sicurezza degli oggetti con DACL null vengano alterati da utenti malintenzionati, in modo che nessuno possa avere accesso all'oggetto.
Se è necessario che tutti abbiano accesso a un oggetto, l'oggetto dovrebbe essere protetto in modo che solo gli amministratori possano modificarne la sicurezza. Se l'accesso a un oggetto è necessario solo per l'autore, sull'oggetto non dovrebbe essere impostato un DACL; il sistema sceglierà un'impostazione predefinita appropriata.
Esempio
Il codice seguente genera questo avviso perché alla funzione SetSecurityDescriptorDacl viene passato un DACL null:
#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
}
}
Per un esempio completo di come creare un descrittore di sicurezza, vedere Creazione di un descrittore di sicurezza per un nuovo oggetto in C++ (la pagina potrebbe essere in inglese). Per ulteriori informazioni, vedere Creazione di un elenco DACL (la pagina potrebbe essere in inglese).