⊗ppPmAuRHS 424 of 447 menu

Druskos pridėjimas registracijoje

Taigi, jau žinote, kad maišymas naudojant md5 - yra negrįžtamas procesas ir įsilaužėlis, gavęs prieigą prie maišos, negalės gauti iš šios maišos slaptažodžio.

Tiesą sakant, šis teiginys nėra visiškai teisingas - šiuo metu piktieji įsilaužėliai sudarė populiarių ir ne labai slaptažodžių maišų bibliotekas ir bet kuris kvailys gali atkurti slaptažodį, tiesiog paieškojęs jo maišos internete.

Kalba eina apie pakankamai paprastus, populiarius slaptažodžius.

Paieškokite, pavyzdžiui, maišos 827ccb0eea8a706c4c34a16891f84e7b ir iškarto "Google" paieškoje pamatysite, kad tai slaptažodis '12345'.

Pakankamai sudėtingų slaptažodžių maišos tokiu būdu neatkurti (pabandykite).

Galite paklausti, kokia tada problema - tegul visi mes registruojamės su sudėtingais slaptažodžiais. Tačiau yra problema - dauguma vartotojų negalvoja apie savo duomenų saugumą ir gali įvesti pakankamai paprastus slaptažodžius.

Mes registracijos metu galime priversti sugalvoti ilgesnius slaptažodžius, apribodami, pavyzdžiui, minimalų simbolių skaičių 6-iais arba 8-iais, tačiau vis tiek atsiras slaptažodžiai, pvz., '123456' ar '12345678'.

Žinoma, galima sugalvoti intelektualesnį algoritmą slaptažodžio sudėtingumui patikrinti, bet yra kitas sprendimas.

Šio sprendimo esmė tokia: slaptažodžius reikia pradruskinti. Druska - tai speciali atsitiktinė eilutė, kuri bus pridedama prie slaptažodžio registracijos metu ir maiša bus skaičiuojama ne nuo paprasto slaptažodžio, o nuo eilutės druska+slaptažodis, tai yra nuo pradruskinto slaptažodžio.

Tai yra, registracijos metu darysite kažką panašaus į tai:

<?php $salt = '1sJg3hfdf'; // druska - sudėtinga atsitiktinė eilutė $password = md5($salt . $_POST['password']); // paverčiame slaptažodį į pradruskintą maišą ?>

Be to, druska kiekvienam vartotojui bus skirtinga, ją reikia generuoti atsitiktinai registracijos momentu.

Štai paruošta funkcija, kuri tai padarys:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // druskos ilgis for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // simbolis iš ASCII lentelės } return $salt; } ?>

Naudodami šią funkciją galime perrašyti savo kodą štai taip:

<?php $salt = generateSalt(); // druska $password = md5($salt . $_POST['password']); // pradruskintas slaptažodis ?>

Dar kartą pakartosiu, kad tai buvo pakeitimai registracijos metu - į DB išsaugome ne tik slaptažodžio maišą, o pradruskinto slaptažodžio maišą.

Tai dar ne viskas: vartotojų lentelėje, be laukelio login ir password, reikia sukurti ir laukelį salt, kuriame saugosime kiekvieno vartotojo druską.

Įgyvendinkite aukščiau aprašytą registraciją su pradruskintu slaptažodžiu.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti