WallPapers

Amazon Books

Driver Image Banner 728 x 90

Indice articoli

 

 

Connettersi al database

Potete stabilire una connessione con il protocollo SSL per criptare la connessione client/server per aumentare la sicurezza, oppure potete usare ssh per criptare la connessione di rete tra i client e il server del database. Se usate entrambe le opzioni sarà molto difficile per chiunque monitorare il vostro traffico e rubarvi informazioni.

Modello di memorizzazione criptato.

SSL/SSH protegge il viaggio dei dati tra il client e il server, SSL/SSH non protegge i dati memorizzati nel database. SSL/SSH è un protocollo per i collegamenti.

Una volta che un attaccante guadagna l'accesso al vostro database direttamente (bypassando il server web) i dati sensibili ivi conservati possono essere mostrati o mal utilizzati se le informazioni non sono protette da database stesso.

Criptare i dati è un buon modo di ovviare a questo problema ma sono molto pochi i database che offrono questo tipo di criptazione dei dati.

La maniera più semplice di lavorare a questo problema è quello di creare il vostro package di criptazione, e quindi usarlo con i vostri script PHP.

Il PHP può aiutarvi in questo caso con molte estensioni, come Mcrypt e Mhash, che coprono una grande varietà di algoritmi di criptazione.

Gli script criptano i dati prima di memorizzarli sul database e li decriptano nella fase di consultazione del database.

Nel caso di dati veramente nascosti, e se la loro rappresentazione originaria non è necessaria (per esempio perché non mostrata) può essere presa in considerazione una tecnica di hashing.

Un esempio ben conosciuto di hashing è quello di memorizzare con un hash MD5 le password di un database, invece della password stessa.

Esempio 5. usare un campo password con hashing

// storing password hash

$query = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",

addslashes($username), md5($password));

$result = pg_exec($connection, $query);

 

// querying if user submitted the right password

$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",

addslashes($username), md5($password));

$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {

echo "Welcome, $username!";

}

else {

echo "Authentication failed for $username.";

}