Voor een webapplicatie wil ik het de gebruiker wat gemakkelijker maken om in te loggen. Stel nu dat ik dit wil door hem de mogelijkheid te geven om zijn username en wachtwoord in dezelfde <input type="password" /> te typen?
Dus stel je hebt user piet, klaas en marie met de wachtwoorden abc, def, ghi. Deze staan (natuurlijk) gesaltedhashed in de db:
Als Piet wil inloggen, typt hij in: pietabc
Het systeem haalt alle usernames uit de users tabel, en kijkt of die voorkomen in het usernamepassword. In dit geval zal hij 'piet' vinden. Vervolgens knipt het systeem 'piet' van het usernamepassword af, zodat 'abc' overblijft. Tenslotte zal het systeem piet en de gehashte 'abc' checken om de gebruiker in te loggen.
Stel dat dit ook handig is voor de gebruiker, welke security issues zitten hier aanvast? Ik ken http://security.stackexch...te-user-no-username-field e.d., maar die gaan ervan uit dat je helemaal geen username hebt.
Mogelijke issues:
Gebruiker 'piet' en 'pietje' --> pietje zal niet kunnen inloggen, omdat het systeem 'piet' zal afknippen. (oplossing: match eerst de langste username en dan pas de kortste, echter, als het wachtwoord van 'piet' begint met 'je', krijg je weer een probleem; in dit specifieke geval speelt dit niet, want de gebruikers zijn collega's en het zijn er max 10).
Dus stel je hebt user piet, klaas en marie met de wachtwoorden abc, def, ghi. Deze staan (natuurlijk) gesaltedhashed in de db:
| username | pass | salt |
|---|---|---|
| piet | $@#^@35462reGdfsg3w$%^@GT8456yhgdf | $%23452REFGSDFGSDFw54634 |
| klaas | FGDHTRY($&REBFVJDFGuefghewrt65243wTDFS | Gdfgsdfg%$^#$%êgsdfG%$#W |
| marie | ^$#%23wtgsdfGDFTYG%$^*&%^%95yjcfgd2342 | gdfsgsdf$#^@3576547urdHDFGsdf |
Als Piet wil inloggen, typt hij in: pietabc
Het systeem haalt alle usernames uit de users tabel, en kijkt of die voorkomen in het usernamepassword. In dit geval zal hij 'piet' vinden. Vervolgens knipt het systeem 'piet' van het usernamepassword af, zodat 'abc' overblijft. Tenslotte zal het systeem piet en de gehashte 'abc' checken om de gebruiker in te loggen.
Stel dat dit ook handig is voor de gebruiker, welke security issues zitten hier aanvast? Ik ken http://security.stackexch...te-user-no-username-field e.d., maar die gaan ervan uit dat je helemaal geen username hebt.
Mogelijke issues:
Gebruiker 'piet' en 'pietje' --> pietje zal niet kunnen inloggen, omdat het systeem 'piet' zal afknippen. (oplossing: match eerst de langste username en dan pas de kortste, echter, als het wachtwoord van 'piet' begint met 'je', krijg je weer een probleem; in dit specifieke geval speelt dit niet, want de gebruikers zijn collega's en het zijn er max 10).