Sto creando un sito Web PHP in cui gli utenti, tra le altre cose, possono accedere e fare cose amministrative. Per le loro password io uso password_hash ($ password) e successivamente verificare con esso, io uso password_verify ($ password, $ pass_from_db).
Poiché PHP è un linguaggio lato server, la password, prima di raggiungere il server, in entrambi i casi è vulnerabile per lo sniffing, e dal momento che è un testo chiaro, facile da usare e utilizzare da attacchi man-in-the-middle. Dato che userò Ajax JS, ho pensato di utilizzare prima una crittografia JavaScript, quindi inviare il valore crittografato di JavaScript su Internet e quindi creare l'hash della password sul valore crittografato come segue:
HTML | password=" 1234 " | - > JS | encrypt (" 1234 ")=" ASU'2j3) k " | - > PHP | password_hash (" ASU'2j3) k ")=" AlD23J" # sC5 "P " | - > Inserito in db
HTML | password=" 1234 " | - > JS | encrypt (" 1234 ")=" ASU'2j3) k " | - > PHP | password_verify (" ASU'2j3) k ", " AlD23J" # sC5 "P " - 'Ottenuto da db') | ACCETTATO
Questa è una buona idea, o dovrei semplicemente inviare la password come testo in chiaro?