Domanda

Ho un sito ASP.NET MVC con un'applicazione privata amministrazione del sito protetto con ASP.NET autorizzazione sql-backed. Ho bisogno di aggiungere un account di accesso per il sito pubblico per permettere ai visitatori di registrarsi per un account.

Sto pensando dovrei creare archiviazione totalmente separato per il sito pubblico, piuttosto che estendere il db utente esistente e si basano su ruoli per mantenere gli utenti pubblici fuori dal back office. C'è qualche motivo per non farlo?

È stato utile?

Soluzione

Sì, c'è. È possibile isolare il database privato dal database pubblico. Crea 2 account utente di database, assicurarsi che essi hanno accesso solo al 1 banca dati di cui hanno bisogno. Le applicazioni pubbliche e private utilizzare account diversi. Poi bloccare gli account di database per assicurarsi che essi hanno solo i diritti necessari per l'applicazione web di funzionare. (Io non sono sicuro di quello database in uso. Se si utilizza MS-SQL assicurarsi che essi non hanno accesso ai xp_cmdshell, se si è sotto mysql assicurarsi che l'account non dispone di privilegi FILE. Ci sono altre considerazioni ma questo è al di fuori della portata di questa domanda.)

Se una vulnerabilità SQL Injection si trova nella parte pubblica del vostro sito allora sarà in grado di accedere un database che lasciare il tuo sito privato influenzata dall'attacco.

Altri suggerimenti

Ora e potenzialmente denaro sarebbe una ragione. In caso contrario, se si ha il tempo. A seconda delle necessità, senza sapere esattamente le questioni a portata di mano, potrebbe anche aggiungere un sacco di complessità ...

HTH.

Sarà mai avere un utente con più di un ruolo? Potrebbe finire per memorizzare lo stesso utente in più di un database? Se è così, vorrei tenere gli utenti in un DB unificata.

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