registrazione sicura

ispanic

Utente Attivo
28 Ago 2014
119
0
0
Ciao ragazzi, ho creato una registrazione standard, che legge vari form e se sono giusti li spedisce in una tabella del database mentre se sono sbagliati la pagina visualizzerà un messaggio di errore, però girando sul web ho visto che potrei mettere varie sicurezze alla registrazione...
Quali sono i frammenti di codice in più da mettere per renderla sicura e cosa si rischia non rendendola?
 

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.054
6
38
53
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Ciao,
per la sicurezza sull'acceso devi criptare la password utente, in modo che la password reale non sia visibile in db.
Quindi devi fare la cifratura in md5 o meglio in sha1.
In genere non è mai una buona idea memorizzare le password degli utenti nel database senza cifrarle. Il motivo principale di questo è che qualcuno può avere accesso al database, anche soltanto in modalità di sola lettura... Quindi può fare accesso e tentare accesso anche in altri siti con le stesse credenziali... puoi immaginare il resto...
Per cifrare la pws è semplice:
Codice:
$pws_cifrata=sha1($pws_utente);
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Io ti consiglio di usare sha1 ma non una, tre o quattro volte.
Es $pass=sha1(sha1(sha1($password)));
Esistono database di password in sha1 e se la password é semplice é facile da recitare e dato che gli utenti odiano password difficili per tutelarli veramente usa questo metodo.
Oppure puoi fare un misto tra sha1 e md5. Scegli tu... Ma una volta sola sia per sha1 che per md5 é rischioso.

Inviato con Tapatalk Free da Android
 

ispanic

Utente Attivo
28 Ago 2014
119
0
0
mmm grazie mille! Ma non è facile decriptarle con un decriptatore apposta?
Altre due cose: Se una perosna riesce ad avere la sola lettura del database, potrebbe entrare nel profilo dell'utente copiando e incollando il codice sha1 nel form?
Inoltre cripto solo le password o anche qualcos'altro? Come è più utile?
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Se usi un metodo una sola volta si. Se lo usi più volte o fai un mix tra vari metodi diventa impossibile. E questo é quello che devi ottenere per dare sicurezza a te e ai tuoi utenti nel caso riescano a leggerti il database.

Inviato con Tapatalk Free da Android
 

ispanic

Utente Attivo
28 Ago 2014
119
0
0
perfetto grazie mille, ma se io provo ad entrare nel form di registrazione con la password criptata? questa entra?
 

ispanic

Utente Attivo
28 Ago 2014
119
0
0
Cioè, io cripto la password che si trova nel db con sha1(), se un utente melintenzioanto entra nel database e incolla la password criptata sul form "password" non riuscirà lo stesso ad entrare?
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
No. Ma se incolla si google ed é una password poco criptata su google troverà la decriptazione, quindi potrà entrare

Inviato con Tapatalk Free da Android
 

ispanic

Utente Attivo
28 Ago 2014
119
0
0
grazie mille, ma scusami perché no? se io entro in un databse dove le password sono criptate, e prendo il nome utente e incollo la password criptata nel login, perché non dovrebbe entrare?
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Perché tu al login devi controllare la password che coincida. Per controlarla devi criptare l'input dell'utente e controllare che coincida con quella salvata (criptata). Se uno inserisce quella già criptata ricriptandola cambierà

Inviato con Tapatalk Free da Android
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Ciao,
sha1 ed md5 non sono considerati abbastanza sicuri.
Infatti, è possibile risalire alla password originale utilizzando la cosiddetta "forza bruta". È vero che se utilizzi più volte le due funzioni, magari alternandole, i potenziali hackers dovranno anche trovare la giusta combinazione, ma io ti consiglierei di utilizzare anche password_hash e/o crypt().
Ecco un esempio di implementazione.
PHP:
<?php
function hasha($passwordoriginale){
$crypt = md5(sha1(md5(md5(sha1($passwordoriginale)))));
$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$lunghezza= 22;
$salt = "";
for($i = 0; $i<$lunghezza; $i++){
$salt = $salt.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
}
$newsalt= '$2a$07$'.$salt.'$';
$hashed_password = crypt($crypt,$newsalt); 
return $hashed_password;
}
$passworddacrittare = "password";
$passwordcrittata = hasha($passworddacrittare);
?>
Demo

Per il confronto, utilizzerei hash_equals, oppure, se usi una versione di php precedente alla 5.6,
PHP:
if(crypt($passworddacrittare, $passwordcrittata) == $passwordcrittata){echo 'Le password coincidono';}
else{echo 'Le password non coincidono';}

Inoltre, dovresti anche impedire agli utenti di scegliere password poco sicure in fase di registrazione. Ad esempio, potresti stabilire questi criteri:
-Più lunga di 8 caratteri;
-Contenente almeno una lettera minuscola, un numero ed una lettera maiuscola;
-Non contenente il nome utente/l'indirizzo email/altre informazioni salvate in fase di registrazione;
-Non contenente la parola "password";

Infine, ti consiglio di impostare alcuni controlli per evitare che vengano utilizzati sistemi automatici per scoprire la password:
-Se in fase di login viene inserita una password errata per 3 volte, richiedi di riportare un codice captcha (puoi usare recaptcha), oppure un'altro metodo verifica simile (ne esistono diversi, tutti basati su azioni che i bot non possono compiere, ma gli umani sì).
-Se in fase di login viene inserita una password errata per 10 volte, blocca l'accesso al dispositivo (utilizzando i cookies) per 5 minuti, facendo ricominciare il timer se la pagina viene aggiornata.
-Se vengono effettuati 10 tentativi di accesso falliti per un utente specifico, blocca l'accesso (per ogni terminale) all'account dell'utente per alcuni minuti.
 
Discussioni simili
Autore Titolo Forum Risposte Data
zorro modulo di registrazione: funziona ma non sempre PHP 2
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
T Modificare ruolo utenti in fase di registrazione E-Commerce 0
G Registrazione utente su pagina asp Classic ASP 14
F [PHP]Errore registrazione PHP 8
R Obbligare all'utente un pagamento al momento della registrazione PHP 3
A [PHP] registrazione utente in un database sql con confronto PHP 1
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
A [PHP] Controllo nome utente form di registrazione PHP 4
Tommy03 Generare file PHP dopo registrazione PHP 2
G [PHP] Revisione codice per registrazione PHP 8
B Data Registrazione Dominio Domini 1
B [PHP] Mail di Avvenuta registrazione PHP 4
S registrazione video su dvr in caso di rilevamento di movimento IP Cam e Videosorveglianza 12
Laskot [Javascript] Registrazione e salvataggio utenti in LocalStorage Javascript 8
V Domande: registrazione sito fonti esterne SEO e Posizionamento 0
M registrazione in relazione ai commenti Programmazione 0
damiano.f [PHP] variabili su immagine e registrazione dati su db PHP 0
X__WELBO__X [css] form registrazione utente HTML e CSS 9
marino51 problema con registrazione al forum Supporto Mr.Webmaster 4
L [PHP] Registrazione/Logina la psw deve contenere.. PHP 3
G [WordPress] Redirect dopo registrazione WordPress 0
ANDREA20 [PHP] problema registrazione PHP 50
P [PHP] come criptare una password in un form di registrazione PHP 4
S Vecchio articolo registrazione utenti, errore MySQL PHP 2
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
S appinventor, aggiungere tasto registrazione Sviluppo app per Android 1
M problema registrazione nuovi utenti su pagine asp Classic ASP 1
S email di registrazione e Plugin WP Mail SMTP WordPress 0
F form registrazione PHP 3
F Codic e php visibile su form registrazione utenti PHP 2
matteoraggi Contratto per registrazione domini internet e servizio di hosting Domini 1
L errore mysql per form di registrazione PHP 3
D Form Registrazione con conferma via email - problema PHP 10
M problema mostrare data di registrazione formattata in italiano PHP 8
P Problema con file di registrazione in php, non funziona e dà continui errori PHP 0
M pagina registrazione con mail contenente link di attivazione profilo PHP 1
felino [Wordpress] Plugin iscrizione / registrazione WordPress 1
M Problema con modulo registrazione e inserimento dati in database PHP 8
M Creazione sito con autenticazione utente (registrazione) PHP 3
I Registrazione con Ajax Ajax 1
L Form di registrazione e log in. PHP 2
I Parte di una registrazione con ajax Javascript 1
I sostituzione registrazione PHP 1
I registrazione (SESSION) PHP 5
A Pulsanti login e registrazione PHP 3
I registrazione PHP 1
I problema registrazione PHP 11
I Bloccare registrazione Javascript 1
I Registrazione PHP PHP 14

Discussioni simili