Maaren Posted June 7, 2008 Report Share Posted June 7, 2008 Iesakiet, kā vislabāk kodēt datubāzē paroles? Bija doma izmantot md5(), bet pēc tam tad nevar no administrācijas paneļa paskatīties kāda lietotājam parole, arī vēlāk ar paroļu atgriešanu uz pastkastīti būs problēmas.. bija doma izveidot str_replace() savu sakarību, bet man kautkā neiet. Kādi būtu jūsu ieteikumi? Link to comment Share on other sites More sharing options...
bubu Posted June 7, 2008 Report Share Posted June 7, 2008 Viennozīmīgi md5 (var arī sha1 vai kādu citu skarīgu hešfunkciju) + sāls. Adminam nav jālūr lietotāju paroles. Nevienam tās nav jālūr. A bet paroļu "atgriešanu" lietotājam vajag aizstāt ar paroles noresetošanu, paprasot lietotājam ievadīt jaunu pēc kautkāda unikāla linka, kas šim uz mailu aizsūtīts. Link to comment Share on other sites More sharing options...
Maaren Posted June 8, 2008 Author Report Share Posted June 8, 2008 (edited) Nejau lūrēšanā ir nozīme.. :) Pieņemsim, ja man vajadzēs lietotājam paroli izsūtīt caur sms-servisu, kā one.lv? Edited June 8, 2008 by Maaren Link to comment Share on other sites More sharing options...
Grey_Wolf Posted June 8, 2008 Report Share Posted June 8, 2008 Pieņemsim, ja man vajadzēs lietotājam paroli izsūtīt caur sms-servisu, kā one.lv? nu a kur problema ? useris kad registrejas, ievada paroli .. kamer vinsh vel nav atstajis sistemu . nosuuti SMS .. Ja parole pazaudeta, tad Uzgeneree jaunu un to nosuuti .... pashu paroli saglabajot DB, ar MD5 ... --- Tas nav normali kad Administracija var redzeet usera paroles... Link to comment Share on other sites More sharing options...
Maaren Posted June 8, 2008 Author Report Share Posted June 8, 2008 Neiet runa jau par to vai kāds skatīsies tās paroles. Es nemaz netaisos lūrēt. Ar to ģenerēšanu arī ir tā kā ir. Pieņemsim, ja kāds ļaundaris zinot manu mobīlā telefona numuru sāks man ģenerēt paroles? Un ja numurs ir nomainijies? Tad skaiti paroli vispār nebūs iespējams atgriest. Link to comment Share on other sites More sharing options...
bubu Posted June 8, 2008 Report Share Posted June 8, 2008 Sūti nevis jaunu paroli, bet randomā uzģenerētu linku, kurš derīgs teiksim tikai 10 minūtes (tipa http://tava_lapa.lv/reset_password.php?id=1237918237). Un šajā linkā tad arī prasi ievadīt jauno paroli. Lai tad arī ļaundaris sāk pieprasīt paroles resetošanu - ja viņš netiks klāt tavam epastam/telefonam, tad viņš nevarēs noresetot paroli, tikai panāks to, ka uz tavu epastu/sms atnāks kaudze ar ziņām par resetošanas linkiem. Uzliec vēl limitu - teiksim stundas laikā max 2 reseti var būt un nebūs nekādu problēmu. Link to comment Share on other sites More sharing options...
Maaren Posted June 8, 2008 Author Report Share Posted June 8, 2008 vo taa laikam buus arii jaadara.. :) Link to comment Share on other sites More sharing options...
marrtins Posted June 8, 2008 Report Share Posted June 8, 2008 vēl var mēģināt tās paroles kriptēt, tik to atslēgu būs kautkur droši jānoglabā http://lv.php.net/manual/en/book.mcrypt.php Link to comment Share on other sites More sharing options...
codez Posted June 8, 2008 Report Share Posted June 8, 2008 (edited) Īsti vīri paroles nehešo. Noņem paroļu tabulai visas permisijas userim, kurš no php slēdzas mysql. Izveido mysql funkcijas, kuras veic darbu ar paroļu tabulu. Edited June 8, 2008 by codez Link to comment Share on other sites More sharing options...
andrisp Posted June 9, 2008 Report Share Posted June 9, 2008 Man liekas, ka notikumi pēdējā laikā ir neapgāžami pierādījuši, ka riskēt glabāt paroles nehešotas/nenokodētas, būtu lielākais stulbums, ko vien kāds varētu izdomāt. ;) Link to comment Share on other sites More sharing options...
Aleksejs Posted June 9, 2008 Report Share Posted June 9, 2008 Tā permisiju noņemšana un procedūras izveidošana ir ļoti apsveicama lieta, taču cleartext paroles vienalga nedrīkst glabāt. Link to comment Share on other sites More sharing options...
Klez Posted June 9, 2008 Report Share Posted June 9, 2008 man liekas ka shitaads kodeeshana buutu pietiekama ... function mk_pw($parole) { $p = md5($parole); $salt = substr($p,0,8); return md5($p . $salt); } tiekot pie DB dump un netiekot pie koda, kas paroli taisa, tad ar tiem md5 var dariit ko grib, jo no vinjiem neko nevar atkodeet ... un salts arii neglabaajas db, taa kaa "lielajam" hakerim pat nav nosjausmas, ka parolei ir saals ..) taas manas domas . ko citi domaa? Link to comment Share on other sites More sharing options...
andrisp Posted June 9, 2008 Report Share Posted June 9, 2008 Klez, tavā variantā tas salts īsti nepilda savu misiju - tas ir - salts parasti panāk to, ka laušana ar vārdnīcas palīdzību paliek daudz grūtāka, jo katrai parolei atsevišķi ir jāģenerē katra vārdnīcas vārda md5 strings. Tavā gadijumā, ja es zinu (kā lauzējs, kas tikko dabūjis tavas paroles un piekļuvi kodam), ka tu izmanto šadu aizkodēšanas metodi, tad no tā tava salta vairs jēgas nav nekādas. Link to comment Share on other sites More sharing options...
Toms Posted June 9, 2008 Report Share Posted June 9, 2008 Kad no salt ir jēga piekļūstot gan kodam, gan DB? Es izmantoju šādu triku: /** * @desc Atgriež paroli ar salt + md5() * @param $pass string * @param $newPass boolean Vai ģenerēt jaunu paroli? (reminderam) * @param $newPassLen int Jaunās paroles simbolu skaits * @return void * @version 0.1 */ function password($pass,$newPass = false,$newPassLen = 5) { if ($newPass) { return substr(md5('salt'.time().'salt2'.time()),0,$newPassLen); } return md5('salt'.$pass.'salt2'.$pass); } /* password */ /**************************************************************************/ Link to comment Share on other sites More sharing options...
Kavacky Posted June 9, 2008 Report Share Posted June 9, 2008 Tavā gadijumā, ja es zinu (kā lauzējs, kas tikko dabūjis tavas paroles un piekļuvi kodam), ka tu izmanto šadu aizkodēšanas metodi, tad no tā tava salta vairs jēgas nav nekādas. tiekot pie DB dump un netiekot pie koda, kas paroli taisa, tad ar tiem md5 var dariit ko grib, jo no vinjiem neko nevar atkodeet ... Link to comment Share on other sites More sharing options...
Recommended Posts