ArnisR Posted August 10, 2010 Report Share Posted August 10, 2010 Tātad izveidoju login sistēmu WEB lapai. Šis kods ir katras lapas sākumā, kur tiek pārbaudīts, vai lietotājs ir autorizējies: <?php session_start(); include_once("config.php"); $charset = mysql_query("SET NAMES 'utf8'"); if (!empty($_SESSION['login']) and !empty($_SESSION['password'])) { $login = $_SESSION['login']; $password = $_SESSION['password']; $result = mysql_query("SELECT pid FROM users WHERE login='$login' AND password='$password'",$db); if(!$result){exit();} else{$row = mysql_fetch_array($result);} if (empty($row['pid'])){header("Location: login.php"); exit();} } else{header("Location: login.php"); exit();} ?> Kā jums liekas, vai ar to pietiks, vai arī vēl kādi drošības pasākumi jāveic? Un vēl: vai pietiek, ka SESSION mainīgi tiek izlaisti caur drošības funkcijām tikai pie ieejas, jeb tas ir jādara katrā lapā? Un vai vispār lietotājs var kaut kā manuāli izmainīt SESSION vērtības? Paldies! Quote Link to comment Share on other sites More sharing options...
Леший Posted August 10, 2010 Report Share Posted August 10, 2010 Sesijas dati netiek eskeipoti. empty(): Return Values Returns FALSE if var has a non-empty and non-zero value. The following things are considered to be empty: * "" (an empty string) * 0 (0 as an integer) * "0" (0 as a string) Quote Link to comment Share on other sites More sharing options...
codez Posted August 10, 2010 Report Share Posted August 10, 2010 (edited) Kāda jēga sesijā glabāt paroli un username-u un tad no tiem katru reizi mocīt datubāzi, lai uzzinātu vai tie atbilst, ja sesijā vienkārši var glabāt, ka lietotājs ir ielogojies. Ja lietotājs nav ielogojies, tad $_SESSION['logged_user_id'] nebūs iesetots. Kad lietotājs logojas, pārbaudam db vai parole pareiza un iesetojam $_SESSION['logged_user_id'] ar ielogotā lietotāja id, visdrīzāk jau kaut kur vajadzēs. Kad lietotājs izlogojas, unset-ojam $_SESSION['logged_user_id']. un tad viss tas penteris pārvēršas: if (!isset($_SESSION['logged_user_id'])) { Header('location:/login.php'); exit; } P.S. Lietotājs nevar izmainīt sesijas vērtības, jo cookijos glabājas tikai sesijas id, pēc kura vērtības tiek atrastas jau servera pusē. Edited August 10, 2010 by codez Quote Link to comment Share on other sites More sharing options...
Леший Posted August 10, 2010 Report Share Posted August 10, 2010 codez, kewl hackeri var tikt pie sesijas failiem uz servera. Quote Link to comment Share on other sites More sharing options...
codez Posted August 10, 2010 Report Share Posted August 10, 2010 (edited) cool hackeri var arī tikt pie parolēm datubāzē. Un aceries, ka cool hackeri zin visus hash-us visām hash funkcijām no galvas. Edited August 10, 2010 by codez Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.