Jeu sécurité

Le bug du mois d'octobre

Proposé par Neelay Shah, Consultant (Foundstone)

#define MAX_CONN_STR_LEN 512
            :
            :
            :
      char strConnectionString[MAX_CONN_STR_LEN+1] = “Provider=’sqloledb’; Data Source=’DataServer.Company.com’; Initial Catalog=’UserRecords’; User Id=’CompanyDomain\CompanyUser’; Password=’TestPass’”;

      pConnection>Open(strConnectionString,””,””,adConnectUnspecified);
            :
            :
            :


La bonne réponse

La bonne réponse est :
Les identifiants utilisateurs et mot de passe sont en clair dans la chaîne de connexion.

Un utilisateur averti pourrait aisément relire à l'aide d'un désassembleur les chaînes de caractère et donc retrouver les informations d'identité. Même si ce n'est pas un bug au sens strict du terme, il est important d'utiliser SSPI pour éviter que les informations de connexion soient visibles. Une autre alternative est d'utiliser une chaîne de connexion cryptée à l'aide des API DPAPI (data protection API).


Et le code corrigé

Proposé par Neelay Shah, Consultant (Foundstone)

#define MAX_CONN_STR_LEN 512
            :
            :
            :
      char strConnectionString[MAX_CONN_STR_LEN+1] = “Provider=’sqloledb’; Data Source=’DataServer.Company.com’; Initial Catalog=’UserRecords’;Integrated Security=’SSPI’”;

     pConnection->Open(strConnectionString,””,””,adConnectUnspecified);
            :
            :
            :

Pour aller plus loin

Article : Utiliser DPAPI à partir de ASP.Net

Article : Créer une bibliothèque Data Protection API (DPAPI)

Article : Quelle procédure de dépannage de Data Protection API (DPAPI) ?

Article : Comment utiliser Data Protection Application Programming Interface (DPAPI), un article en anglais qui fait référence

Le règlement | Comment jouer ? | Liste des gagnants


**
**
**
**
**
**