Katsotaan esimerkiksi verkkosivuston yhteistä kirjautumisjärjestelmää.
- HTTPS-yhteys on muodostettu
- Käyttäjä lähettää tunnistetiedot POST: n kautta
- Palvelin -puolikoodi hajauttaa salasanan ja näyttää, vastaako se käyttäjänimeä.
- Istunto on alustettu, ja avain voidaan antaa kirjautumiseen uudelleen ilman salasanoja ("muista minut") ol >
- HTTPS-yhteys muodostetaan
- JavaScript laskee hashin (voi pyytää tiettyä käyttäjän suolaa)
- Skripti lähettää AJAX-käyttäjän / hash-arvot
- Palvelinpuolen koodi näyttää, vastaavatko salasanan hash ja käyttäjänimi.
- Istunto alustetaan ja avain saattaa myönnetään kirjautumaan uudelleen ilman salasanoja ("muista minut")
Tämä on yleensä nykytila, jossa kaikki salasanat lasketaan palvelimella. Mutta jos teemme seuraavan asiakaspuolen, sitä pidetään huonona käytäntönä:
Voiko joku selittää, miksi tätä muuta menetelmää pidetään huonona käytäntönä tehdä se CS: n sijaan SS: n sijaan? Molemmat lähettävät SSL: n kautta, molemmat luovat suojatun hashin, ja molempia todennuksia on pidettävä luotettavina hyvin kirjoitetulla koodilla. Molemmat ovat alttiita XSS: lle ja muulle huonolle suunnittelulle.