dAivEd Posted July 18, 2008 Report Posted July 18, 2008 (edited) Rekur mana login sistema, man vajag pievienot pie vinjas cookies, lai katru reiz kad ienaak nebutu jaraksta NIKS un PAROLE, if(mysql_result($result,0,'COUNT(*)') == 1) <------------ Tipa pirms shita te visa vinsh teste datubaze vai ir tads lietotajs { $_SESSION['id'] = $id; setcookie("id", $id); <---- REKUR ES MEGINAJU IELIKT PATS BET NESANAK setcookie("nick", $nick); -||- setcookie("password", $password); -||- $laiks = "+15 mins"; $time = date('Y-m-d H:i:s', strtotime("$laiks", strtotime(date("Y-m-d H:i:s")))); mysql_query("UPDATE users SET last_login = '$time' WHERE id = '$id'"); mysql_query("UPDATE `users` SET `online` = 'y' WHERE `id` = '$id'"); header("location: index.php?page=$page"); } else { header("location: index.php?err=1"); } } if(!isset($_SESSION['id'])) { echo " <form method=post action=login.php?action=login> <table> <tr><td>Niks:</td><td><input type=text name=nick /></td></tr> <tr><td>Parole:</td><td><input type=password name=password /></td></tr> <tr><td></td><td><input type=submit value=Ielogoties /></td></tr> </table> </form> "; } TALAAAK IET TIPA, JA IR SESSIJA TAD RAADA MENU Ja kads zin luudzu palidziet :) Paldies! Edited July 18, 2008 by dAivEd
test2 Posted July 18, 2008 Report Posted July 18, 2008 kukijam vajag norādīt arī laiku, pameklē tač guglē kā pareizi jātaisa kukījs LOLiķi!
dAivEd Posted July 18, 2008 Author Report Posted July 18, 2008 (edited) kukijam vajag norādīt arī laiku, pameklē tač guglē kā pareizi jātaisa kukījs LOLiķi! tak es noraadu vienalga nekas nenotiek tipa time() +3600 pec mainiga $value, tipa cookies saglabajas es skatijos, bet vienalga ieeju un raada LOGIN un PAROLE Edited July 18, 2008 by dAivEd
black Posted July 19, 2008 Report Posted July 19, 2008 Patiesībā, likt paroli kūkijā (plaintextā) ir stulba doma!
Blackout Posted July 20, 2008 Report Posted July 20, 2008 Personīgi es daru šādi. Pie ielogošanās es uzgenerēju randomā 10 ciparu garu kodu kuru ievietoju lietotāja tabulā. Un taisu 2 cookijus, vienā lietotaajaid un otraa uzgenerēto kodu. Pie izlogošanās uzgenerēto kodu nodzēšu. Katra php faila sākumā lieku includi ar cookie pārbaudi.. Ja ir kookijs, tad pārbaudam vai sakrīt lietotāja id un lietotāja kods, ja jā tad ielogojamies..
andrisp Posted July 20, 2008 Report Posted July 20, 2008 Blackout, kāds labums, ja salīdzina ar "parastajām" php sesijām ? Jo ja nozagt varu vienu kukiju, tad 99.9% nozagt varēšu arī otru.
black Posted July 20, 2008 Report Posted July 20, 2008 (edited) Labums ir tāds, ka tajā speciālājā cepumiņā var iekodēt arī papildus informāciju. To veidojam apmēram tā: md5(lietotājaId + lietotāja_ip_adrese + slepenais hash) Un, tā kā tiek izmantota IP adrese (var vēl pielikt browsera id), tad to izmantot uz citas sistēmas jau būs drusku grūtāk. Šo variantu parasti izmanto, lai supportētu 'remember me on this computer' pie ielogošanās. Edited July 20, 2008 by black
andrisp Posted July 20, 2008 Report Posted July 20, 2008 black, bet to visu taču var arī glabāt server pusē.
black Posted July 20, 2008 Report Posted July 20, 2008 (edited) Var, protams. Tas ir gaumes jautājums. Lielākām lapām varētu būt problēmas - ja sesijai expire uzliksi, teiksim, 2 nedēļas, un lapai ir pāris miljoni apmeklētāju, tad vajadzēs makten daudz vietas uz diska, kur sesijas tiks glabātas. Tas, protams, pieņemot, ka sesijā tiek likti arī citi dati. Edited July 20, 2008 by black
Blackout Posted July 20, 2008 Report Posted July 20, 2008 Labums ir tāds, ka tajā speciālājā cepumiņā var iekodēt arī papildus informāciju. To veidojam apmēram tā: md5(lietotājaId + lietotāja_ip_adrese + slepenais hash) Un, tā kā tiek izmantota IP adrese (var vēl pielikt browsera id), tad to izmantot uz citas sistēmas jau būs drusku grūtāk. Šo variantu parasti izmanto, lai supportētu 'remember me on this computer' pie ielogošanās. Tieši tā..! :)
test2 Posted July 20, 2008 Report Posted July 20, 2008 Labums ir tāds, ka tajā speciālājā cepumiņā var iekodēt arī papildus informāciju. To veidojam apmēram tā: md5(lietotājaId + lietotāja_ip_adrese + slepenais hash) Un, tā kā tiek izmantota IP adrese (var vēl pielikt browsera id), tad to izmantot uz citas sistēmas jau būs drusku grūtāk. Šo variantu parasti izmanto, lai supportētu 'remember me on this computer' pie ielogošanās. A ja es lietotāju paroles aizkodēju tikai ar md5, es varu slepenā hash vietā izmantot šo fciju, kas ģenerē rand kodu? function createRandomPassword() { $chars = "abcdefghijkmnopqrstuvwxyz023456789"; srand((double)microtime()*1000000); $i = 0; $pass = ''; while ($i <= 7) { $num = rand() % 33; $tmp = substr($chars, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } un tad mans kukījs izstītos: md5(lietotājaId + lietotāja_ip_adrese + createRandomPassword()) Tas būtu pietiekami droši?
Aleksejs Posted July 21, 2008 Report Posted July 21, 2008 Jautājums "cik droši ir pietiekami droši" pie pietiekami dziļas izpētes kļūst par filo[z|s]ofisku jautājumu ;) http://www.lightbluetouchpaper.org/2008/05...ession-cookies/ http://php.lv/f/index.php?showtopic=10717&hl=
black Posted July 21, 2008 Report Posted July 21, 2008 "md5(lietotājaId + lietotāja_ip_adrese + createRandomPassword())" diez vai derees - ja peedeejaa dalja ir random (un genereetaa random parole netiek saglabaata, piemeeram, lietotaaju tabulaa), tad peec tam nevareesi saliidzinaat, vai lietotaaja kuukijaa saglabaatais kods ir pareizs.
test2 Posted July 21, 2008 Report Posted July 21, 2008 Nē nu ja es to visu lietotāja id + Ip +randompass pie logina inertoju lietotāju tabulā, laukā kukījs, un tad vnk visur kur tiek pieprasīts pārbaudu, vai tas kukījs i vienāds ar lietotāja tabulā esošu kukiju? Ta nevarēs?
Recommended Posts