4 cose che non dovresti mai memorizzare nel tuo database
Feb 6, 2017
I database sono principalmente utilizzati per supportare varie applicazioni critiche per il business. Possono memorizzare molti tipi di dati. Tuttavia, ci sono alcune cose che non si dovrebbero mai conservare in un database.
Queste tecniche di base di database security aiuteranno a proteggere i tuoi dati:
Credenziali non sicure
Probabilmente è un punto ovvio, ma non è una buona idea memorizzare password in chiaro nel proprio database.
Se un hacker ottiene accesso ai dati in questa tabella, avrà un elenco di tutte le password di tutti gli utenti. Queste password sono in testo chiaro, leggibile, che può essere utilizzato per accedere al sistema come se l'hacker fosse quell'utente. Potrebbe non sembrare un grande problema: se l'hacker ha già avuto accesso al sistema, perché avrebbe bisogno di un login? Il problema è che le persone spesso usano la stessa password per molti account. Se un hacker ha nomi utente e password, può utilizzare queste informazioni su altri siti. Quindi, come si risolve questo problema? Criptare la password prima di memorizzarla. Questo processo è spesso chiamato “hashing” e può anche essere combinato con il “salting”.
L’hashing consiste nell’applicare un algoritmo a una password inserita, che la crittografa. Può poi essere memorizzata nel database. Per verificare questa password, il sistema può eseguire lo stesso processo di hashing sul valore inserito dall’utente e confrontare il risultato con il valore hash precedentemente memorizzato (la password corretta). Molti linguaggi di programmazione dispongono di una funzionalità integrata per eseguire questa operazione. In breve: non memorizzare mai password in testo semplice in un database.
Dati duplicati
Conservare dati duplicati nel tuo database non è una buona idea. Occupa più spazio nel tuo database, il che può essere una quantità considerevole se hai un database di grandi dimensioni. Inoltre, può causare problemi quando devi aggiornare i dati, poiché devi farlo in diversi posti. L'unica eccezione a ciò è quando stai creando un data warehouse. Questi tipi di database sono ottimizzati per l'interrogazione rapida, piuttosto che per l'aggiornamento, e di solito contengono dati duplicati.
Uno dei vantaggi dell'utilizzo di un database relazionale per memorizzare i dati è la capacità di conservare i dati in più tabelle, con ogni tabella che rappresenta un'entità, che poi viene collegata alle altre. Questo viene definito come “normalizzazione”. Ciò consente di avere una singola tabella per ogni entità e utilizzare numeri ID (o altri valori chiave) per collegare le tabelle tra loro.
Questo significa che è più facile aggiornare i dati se mai si ha la necessità di modificare alcuni valori. Risparmia anche spazio e spesso può migliorare le prestazioni quando si apportano modifiche ai dati.
File come immagini
I database consentono di memorizzare file all'interno di tabelle nel database, come immagini.
Ora, sebbene sia possibile creare tabelle e colonne per memorizzare file (come il tipo di dato BLOB di Oracle), ciò non significa che si debba farlo. Memorizzare un file in una tabella del database significa che è necessario utilizzare la logica del database (e possibile logica dell'applicazione) per accedere al file. Questo aumenta le dimensioni del database e ne degrada le prestazioni. Rende inoltre più complicate le operazioni di backup e la gestione della corruzione dei dati. Un approccio migliore per memorizzare file e immagini è utilizzare i server di file. È per questo che sono stati creati. Farlo consente un accesso ai file più veloce, un accesso più semplice ai metadati dei file e una funzionalità di backup e ripristino più agevole.
Dati della carta di credito
Infine, non dovresti memorizzare le informazioni della carta di credito nel tuo database a meno che non sia assolutamente necessario.
Questo include nomi dei titolari delle carte di credito, numeri, numeri CVV e date di scadenza. Il rischio coinvolto è troppo elevato. Se un hacker ottiene accesso ai dati delle carte di credito dal vostro sistema, ciò ha un grande impatto sulla vostra azienda e sui vostri clienti. È necessario anche essere sottoposti a revisione esterna per assicurarsi di rispettare standard rigorosi, ovvero PCI DSS, se memorizzate numeri di carte di credito. Questo crea ulteriori problemi per il vostro reparto IT e comporta spese aggiuntive. Un approccio migliore è utilizzare una soluzione esistente, come Authorize.net o PayPal. Queste organizzazioni hanno già sviluppato il software, dimostrato la loro conformità e molte altre aziende già utilizzano e si fidano di queste società. È meglio evitare del tutto di memorizzare i dati delle carte di credito. Farlo non vale il rischio e altre aziende lo fanno meglio.
Condividi su
Scopri di più
Informazioni sull'autore
Ben Brumm
Sviluppatore software & Analista aziendale
Ben è uno sviluppatore software e analista aziendale con oltre 11 anni di esperienza. Residente a Melbourne, Australia, ha lavorato con database e SQL sia durante il suo lavoro a tempo pieno, sia come fondatore del sito DatabaseStar.com dove insegna argomenti relativi ai database Oracle. La sua passione per il software e i database è iniziata quando ha iniziato i corsi di informatica al liceo alla fine degli anni '90 e da allora è solo cresciuta.
Scopri di più su questo argomento
I prossimi cinque minuti di conformità: costruire la Data Security That Starts with Identity in tutto l'APAC
Leggi sulla Privacy dei Dati per Stato: Diversi Approcci alla Protezione della Privacy
Il Triangolo CIA e la sua applicazione nel mondo reale
Cos'è la gestione dei documenti elettronici?
Espressioni regolari per principianti: Come iniziare a scoprire dati sensibili