Domanda

Qual è il modo migliore per centralizzare e proteggere le stringhe di connessione utilizzate dalle applicazioni? Nel mio ambiente abbiamo molte applicazioni interne. Ogni applicazione richiede una o più stringhe di connessione per accedere al database. Il nostro obiettivo è centralizzare tutte queste stringhe di connessione (in particolare login e password SQL) in modo da poter cambiare le password in un posto anziché in 35 diversi file .config, voci di registro ecc.

Attualmente stiamo utilizzando un componente cresciuto in casa che estrae le informazioni sulla stringa di connessione da un database di accesso, questo copre il requisito di centralizzazione ma non è particolarmente sicuro. Inoltre, abbiamo applicazioni scritte in lingue dal classico asp, vb6, delphi, c ++, .net, quindi la soluzione dovrebbe essere utilizzabile da tutte quelle applicazioni.

Qualcuno ha un'idea di come farlo meglio o dobbiamo rielaborare il nostro intero approccio al modo in cui le nostre applicazioni accedono al database.

È stato utile?

Soluzione

È possibile utilizzare il server Windows per creare utenti autorizzati ad accedere al database di SQL Server. Quindi è possibile utilizzare il login integrato di Windows nelle stringhe di connessione.

BTW La memorizzazione delle password in MDB pubblico le rende irrilevanti. Come non esistono.

Altri suggerimenti

La società per cui lavoro ha invece utilizzato una situazione simile attraverso un database SQL Server. Abbiamo finito per creare una DLL .net conforme a COM per semplificare e proteggere l'API nel database e per garantire che la stessa logica sia utilizzata tra i pacchetti classici asp, .Net e DTS. Ha funzionato alla grande per noi per anno e mentre ci sono alcuni elementi di refactoring che molti di noi vorrebbero fare con esso, è stato bello affrontare problemi come le migrazioni dei server o le rinominazioni.

Penso che tu sia sulla buona strada; tuttavia, consiglierei le seguenti modifiche:

  • Prova a passare a un vero server di database. L'accesso è ottimo per MS Office ma non per qualcosa di simile.
  • Costruisci una console di gestione che consenta di controllare chi sta aggiungendo e modificando le informazioni (proteggi chi ha accesso anche a quali impostazioni).
  • Crea una DLL conforme a COM in modo che possa essere utilizzata da altri sistemi in modo sicuro e coerente.

EDIT:

Qualcosa che ho notato dopo anni di lavoro in un sistema come questo è che lega leggermente le mani su alcune soluzioni. Molti strumenti là fuori (es. NHibernate, Elmah, ecc. Nel mondo .Net) sono davvero limitati quando la stringa di connessione non è più nei file di configurazione. Molti possono essere facilmente modificati per utilizzare la tua API; tuttavia, è qualcosa che richiede più tempo per indagare se si desidera utilizzarlo. Solo una FYI su questo.

Non è possibile passare a Window Integrated Security nelle stringhe di connessione, quindi non devi preoccuparti troppo dell'aspetto della sicurezza (a meno che non sia necessario proteggere la posizione effettiva della connessione, suppongo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top