Il tuo codice sembra sicuro, ma il tuo progetto potrebbe richiedere un po 'di lavoro.
SQL Injection
La parte pericolosa del codice è in memorizzare nulla nel database, o mostrando qualsiasi cosa per gli utenti, che vengono raccolte da parte dell'utente. Quindi, la parte che devi fare attenzione si verifica prima del tuo esempio. Assicurati di convalidare, filtrare e sfuggire tutti i dati che raccogli da parte dell'utente, inclusi la password e le informazioni sull'annuncio.
crittografia
Il vantaggio di memorizzare la password nel database è che si può permettere all'utente di recuperare la password tramite e-mail o altri mezzi se perdono esso.
Tuttavia, se lo fai memorizzare le password, è necessario memorizzare le cifrati, utilizzando una chiave segreta, in modo che se qualcuno è in grado di dirigere l'accesso in lettura al database, non possono leggere tutte le password in testo normale. Tuttavia, dovrai memorizzare la chiave segreta da qualche parte, e se qualcuno ottiene la tua chiave segreta e ha accesso al tuo database, avranno accesso a tutte le password.
valori hash (consigliato)
E 'migliori pratiche e più sicuro per memorizzare solo un modo valori di hash (SHA1 o SHA256) delle password nel database invece delle password attuali. In questo modo, non è possibile recuperare la password. I valori di hash sono intenzionalmente un modo eliminando alcuni dati.
Invece di recuperare la password originale, si hash la password che l'utente inserisce e confronta il valore di hash con il valore di hash memorizzato per vedere se corrisponde. Se l'utente perde la password in questo caso, invece di inviare la password via e-mail all'utente, si invia all'utente una nuova password generata casualmente.
Memorizzare solo il valore hash protegge ulteriormente i dati, poiché anche se l'utente ha accesso in lettura al database, i valori hash non offrono alcun vantaggio e non esiste una chiave segreta che sbloccherà tutti i valori hash.
Quando si hash le password, assicurarsi di utilizzare un valore salt casuale e memorizzare il sale per proteggere il tuo elenco di hash contro gli attacchi arcobaleno.
Sommario
a volte non si arriva a scegliere la password. A volte la password proviene da un altro sistema, quindi non sempre è possibile scegliere, e talvolta i tuoi superiori (forse anche gli utenti) richiederanno di essere in grado di recuperare le password, tuttavia, quando possibile, dovresti scegliere l'opzione più sicura .
Si noti che tutta questa attività di crittografia e valore hash protegge solo parzialmente il server da persone che sono in grado di ottenere accesso in sola lettura ai dati. A volte, ottenere i tuoi dati è sufficiente per un premio, quindi se l'utente può leggere l'hash della password, può leggere i numeri della tua carta di credito?
È necessario proteggere il database. Hai una password sicura sul tuo sistema di database? Autorizzi solo l'accesso locale ai tuoi dati? Hai creato un utente del database con i privilegi minimi da utilizzare nella tua applicazione? Ti stai proteggendo adeguatamente dagli attacchi di SQL injection e scripting?
Se qualcuno ha letto e scrive l'accesso ai dati, l'intera password aziendale diventa discutibile.
Si prega di tel Io non hai salvato la loro vera password in MySQL ... – animuson
sì, ma hey, il sito web non è ancora online, in fase di sviluppo ... Sto solo iniziando sul fronte della sicurezza ora ... Come dovrebbe Lo salvo allora? –
@animuson è così importante per il sito web di annunci? –