Miten tunnuksen ja salasanan tarkistus kannattaa tehdä?
Haetaanko tietokannasta rivi missä tunnus="$tunnus" ja salasana="$salasana" vai miten?
Entäs tunnuksen lisäys? Kannattako ensin tarkistaa, ettei tietokannasta löydy jo samannimistä tunnusta (sähköpostiosoitetta), vai suoran lisätä uusi tunnus, ja katsoa antaako tietokanta virheen (UNIQUE) sarakkeiden kohdalla?
Miten ammattilaiset tekevät tämän?
Haetaanko tietokannasta rivi missä tunnus="$tunnus" ja salasana="$salasana" vai miten?
Entäs tunnuksen lisäys? Kannattako ensin tarkistaa, ettei tietokannasta löydy jo samannimistä tunnusta (sähköpostiosoitetta), vai suoran lisätä uusi tunnus, ja katsoa antaako tietokanta virheen (UNIQUE) sarakkeiden kohdalla?
Miten ammattilaiset tekevät tämän?
Vastaukset 2
Vanhimmat
kannattaa lukaista php:n dokumentaatio funktiosta mysql_real_escape_string:
http://fi2.php.net/mysql_real_escape_string
ja itse en tallenna tietokantaan "selkokielisiä" salasanoja, vaan esimerkiksi sha1 summa, ettei salasanoja saa selville, vaikka jonkin bugin takia tietokantaan pääsisikin...
ammattailaisena en ehkä itseäni pidä, vaikka joskus töissä pitääkin jotain pientä php:llä koodailla..
Tallennetaan tauluun käyttäjästä id (juokseva numero), tunnus, kirjautumishetki ja HASH-arvo joka lasketaan vaikkapa tunnuksesta, kirjautumishetkestä, salasanansta ja "salaisesta" stringistä (jonka voi vaikka kovakoodata sinne sivulle jos ei muuta jaksa viritellä).
Kun käyttä sitten kirjautuu haetaan tunnuksella kannasta rivi, lasketaan uusiksi hash-arvo ja verrataan kantaan tallennettuun. Jos natsaa, pääsee sisään. Jos ei, ei kelpaa.
Salasanaa muutettaessa on HASH-arvo laskettava uusiksi.
HUOM: aina käytettävä samoja arvoja laskentaan.
Itse olen yleensä käyttänyt MD5 hashia. Ei maailman turvallisin, mutta luulisin olevan riittävä. :-)