Condividi tramite


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).