Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #22626 > unrolled thread

Login con PDO

Started by^Bart <gabriele1NOSPAM@hotmail.com>
First post2019-04-11 00:27 +0200
Last post2019-04-12 16:49 +0200
Articles 8 — 4 participants

Back to article view | Back to it.comp.www.php


Contents

  Login con PDO ^Bart <gabriele1NOSPAM@hotmail.com> - 2019-04-11 00:27 +0200
    Re: Login con PDO Alessandro Pellizzari <shuriken@amiran.it> - 2019-04-11 10:34 +0100
      Re: Login con PDO Enrico Maria Chellini <bitit@bitit.it> - 2019-04-11 18:31 +0200
        Re: Login con PDO Alessandro Pellizzari <shuriken@amiran.it> - 2019-04-11 18:29 +0100
          Re: Login con PDO Enrico Maria Chellini <bitit@bitit.it> - 2019-04-12 12:00 +0200
          Re: Login con PDO Roberto Tagliaferri <tagliaferri@bofhland.org> - 2019-04-12 17:03 +0200
            Re: Login con PDO Alessandro Pellizzari <shuriken@amiran.it> - 2019-04-12 16:27 +0100
      Re: Login con PDO ^Bart <gabriele1NOSPAM@hotmail.com> - 2019-04-12 16:49 +0200

#22626 — Login con PDO

From^Bart <gabriele1NOSPAM@hotmail.com>
Date2019-04-11 00:27 +0200
SubjectLogin con PDO
Message-ID<q8lqkv$18k1$1@gioia.aioe.org>
Salve,

stavo dando un'occhiata a questo sito: 
https://www.9lessons.info/2016/04/php-login-system-with-pdo-connection.html

Il file config.php contiene i dati per l'autenticazione al database 
mentre non ho capito come il codice html per il login riesca a leggere i 
dati di login e password contenuti nella tabella users di esempio!

Saluti.
^Bart

[toc] | [next] | [standalone]


#22627

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2019-04-11 10:34 +0100
Message-ID<gh8g1vFntueU1@mid.individual.net>
In reply to#22626
On 10/04/2019 23:27, ^Bart wrote:

> Il file config.php contiene i dati per l'autenticazione al database 
> mentre non ho capito come il codice html per il login riesca a leggere i 
> dati di login e password contenuti nella tabella users di esempio!

L'HTML non deve mai sapere login e password nel DB.

L'HTML passa login e password inseriti dall'utente a PHP, che critta la 
password e poi cerca nel DB se esiste qualcosa con quello specifico 
login E quella password crittata. Se esiste è loggato, altrimenti no.

Quel codice è relativamente insicuro, Consiglio su usare password_hash() 
al posto di hash()

https://www.php.net/manual/de/function.password-hash.php

https://stackoverflow.com/questions/30279321/how-to-use-password-hash

Questo permette non solo di avere livelli multipli di hashing (e quindi 
rendere più costoso decrittare le password), ma anche di aumentare il 
livello di crittazione mantenendo la compatibilità con le password già 
salvate nel DB.

Bye.

[toc] | [prev] | [next] | [standalone]


#22628

FromEnrico Maria Chellini <bitit@bitit.it>
Date2019-04-11 18:31 +0200
Message-ID<20190411183141.17d1cd95@nntp.aioe.org>
In reply to#22627
Il giorno Thu, 11 Apr 2019 10:34:49 +0100
Alessandro Pellizzari <shuriken@amiran.it> ha scritto:

> On 10/04/2019 23:27, ^Bart wrote:
> 
> > Il file config.php contiene i dati per l'autenticazione al database 
> > mentre non ho capito come il codice html per il login riesca a
> > leggere i dati di login e password contenuti nella tabella users di
> > esempio!  
> 
> L'HTML non deve mai sapere login e password nel DB.
> 
> L'HTML passa login e password inseriti dall'utente a PHP, che critta
> la password e poi cerca nel DB se esiste qualcosa con quello
> specifico login E quella password crittata. Se esiste è loggato,
> altrimenti no.
> 
> Quel codice è relativamente insicuro, Consiglio su usare
> password_hash() al posto di hash()
> 
> https://www.php.net/manual/de/function.password-hash.php
> 
> https://stackoverflow.com/questions/30279321/how-to-use-password-hash
> 
> Questo permette non solo di avere livelli multipli di hashing (e
> quindi rendere più costoso decrittare le password), ma anche di
> aumentare il livello di crittazione mantenendo la compatibilità con
> le password già salvate nel DB.
> 
> Bye.

è più sicuro password_hash , sh1 o md5?

Enrico 

[toc] | [prev] | [next] | [standalone]


#22629

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2019-04-11 18:29 +0100
Message-ID<gh9broFts81U1@mid.individual.net>
In reply to#22628
On 11/04/2019 17:31, Enrico Maria Chellini wrote:

> è più sicuro password_hash , sh1 o md5?

È una domanda trabocchetto? :D

md5 è ormai considerato insicuro da un pezzo. Ci sono rainbow tables che 
craccano praticamente qualsiasi password.

sha1 ancora non ha rainbow tables complete (AFAIK), ma un certo numero 
di password sono craccabili facilmente, e con l'aumento della potenza 
dei computer (e delle GPU) diventerà sempre più semplice un attacco di 
brute force.

password_hash applica diversi hash in sequenza, quindi per craccare la 
password devi applicare gli stessi hash, nella stessa sequenza, per lo 
stesso numero di volte. Se applichi, per esempio, 20 hash, anche se sono 
banali md5 stai già rendendo 20 volte più lento il processo di brute force.

Per come sono salvati gli hash nel DB, se chiami password_verify su una 
password "vecchia" la verifica lo stesso, e se ci chiami 
password_needs_rehash ti dice anche se devi aggiornarla.

Quindi sì, password_hash è più sicuro di qualsiasi algoritmo di hashing 
preso da solo, proprio perché ne applica più di uno :)

Bye.

[toc] | [prev] | [next] | [standalone]


#22631

FromEnrico Maria Chellini <bitit@bitit.it>
Date2019-04-12 12:00 +0200
Message-ID<20190412120035.0e17b263@nntp.aioe.org>
In reply to#22629
Il giorno Thu, 11 Apr 2019 18:29:28 +0100
Alessandro Pellizzari <shuriken@amiran.it> ha scritto:

> On 11/04/2019 17:31, Enrico Maria Chellini wrote:
> 
> > è più sicuro password_hash , sh1 o md5?  
> 
> È una domanda trabocchetto? :D
>
> md5 è ormai considerato insicuro da un pezzo. Ci sono rainbow tables
> che craccano praticamente qualsiasi password.

wordpress usa ancora md5 se non erro 
> 
> sha1 ancora non ha rainbow tables complete (AFAIK), ma un certo
> numero di password sono craccabili facilmente, e con l'aumento della
> potenza dei computer (e delle GPU) diventerà sempre più semplice un
> attacco di brute force.
> 
> password_hash applica diversi hash in sequenza, quindi per craccare
> la password devi applicare gli stessi hash, nella stessa sequenza,
> per lo stesso numero di volte. Se applichi, per esempio, 20 hash,
> anche se sono banali md5 stai già rendendo 20 volte più lento il
> processo di brute force.
> 
> Per come sono salvati gli hash nel DB, se chiami password_verify su
> una password "vecchia" la verifica lo stesso, e se ci chiami 
> password_needs_rehash ti dice anche se devi aggiornarla.
> 
> Quindi sì, password_hash è più sicuro di qualsiasi algoritmo di
> hashing preso da solo, proprio perché ne applica più di uno :)

grazie .. :) 

Enrico 

[toc] | [prev] | [next] | [standalone]


#22633

FromRoberto Tagliaferri <tagliaferri@bofhland.org>
Date2019-04-12 17:03 +0200
Message-ID<q8q9cd$1and$1@gioia.aioe.org>
In reply to#22629
Alessandro Pellizzari wrote:

> On 11/04/2019 17:31, Enrico Maria Chellini wrote:
> 
>> è più sicuro password_hash , sh1 o md5?
> 
> È una domanda trabocchetto? :D
> 
[...]
> 
> Quindi sì, password_hash è più sicuro di qualsiasi algoritmo di hashing
> preso da solo, proprio perché ne applica più di uno :)
> 
> Bye.


Ciao, il modulo bcrypt di postgres come ti sembra rispetto ad usare php 
(quindi leggere comunque il record per poi controllare la password con la 
funzione PHP piuttosto che fare la query direttamente e scaricare il dato 
solo se la password è esatta)?
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)tosnet.it
www.robyt.eu

[toc] | [prev] | [next] | [standalone]


#22634

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2019-04-12 16:27 +0100
Message-ID<ghbp3oFfd64U1@mid.individual.net>
In reply to#22633
On 12/04/2019 16:03, Roberto Tagliaferri wrote:

>> Quindi sì, password_hash è più sicuro di qualsiasi algoritmo di hashing
>> preso da solo, proprio perché ne applica più di uno :)

> Ciao, il modulo bcrypt di postgres come ti sembra rispetto ad usare php
> (quindi leggere comunque il record per poi controllare la password con la
> funzione PHP piuttosto che fare la query direttamente e scaricare il dato
> solo se la password è esatta)?

Premettendo che non sono esperto di crittazione, e quello che so l'ho 
imparato un po' sulla mia pelle, un po' sulla pelle degli altri... :)

bcrypt mi pare si basi sullo stesso principio di password_hash (anzi, è 
il viceversa): hashare e re-hashare più volte, in modo da rendere 
costoso il tentativo di cracking.

Quindi a livello di sicurezza penso siano equivalenti (a parità di 
algoritmo di hashing e di costo).

Il vantaggio di usare password_hash da PHP è che puoi usare 
password_needs_rehashing per verificare se devi aggiornare la password, 
e avendo la password in chiaro in una variabile PHP, è semplice farlo al 
volo e salvare la nuova password nel DB, mentre con bcrypt fatto da 
Postgres non so se/come si possa fare.

Bye.

[toc] | [prev] | [next] | [standalone]


#22632

From^Bart <gabriele1NOSPAM@hotmail.com>
Date2019-04-12 16:49 +0200
Message-ID<q8q8h0$16us$1@gioia.aioe.org>
In reply to#22627
> L'HTML non deve mai sapere login e password nel DB.
> 
> L'HTML passa login e password inseriti dall'utente a PHP, che critta la 
> password e poi cerca nel DB se esiste qualcosa con quello specifico 
> login E quella password crittata. Se esiste è loggato, altrimenti no.

Ok!

> Quel codice è relativamente insicuro, Consiglio su usare password_hash() 
> al posto di hash()

Ok!

> Questo permette non solo di avere livelli multipli di hashing (e quindi 
> rendere più costoso decrittare le password), ma anche di aumentare il 
> livello di crittazione mantenendo la compatibilità con le password già 
> salvate nel DB.

Grazie per tutte le info! :)

> Bye.

Saluti!
^Bart

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web