fixed session fixation
[mirrors/Kyberia-bloodline.git] / wwwroot / inc / eventz / login.inc
index f293e1d09025f74cd87d4968f8ba10234accdb32..3849129186b43d2b6983a0aeb2d32d4471de8d6f 100644 (file)
@@ -1,13 +1,9 @@
 <?php
 function login() {
-// lockout capatibility
-// with ldap sync
-// <h1> This is da default one</h1>
-    require(INCLUDE_DIR.'ldap.inc');
 
     global $db,$error,$node_id;
     $login = mysql_real_escape_string($_POST['login']);
-    $password = $_POST['password'];
+    $password = $_POST['password']; // Not SQLi but be carefull
     $hash = md5($password);
     $login_type = $_POST['login_type'];
     $referer = $_SERVER['HTTP_REFERER'];
@@ -19,14 +15,17 @@ function login() {
 
     switch ($login_type) {
         case "name":
-            $q = "select * from users where login='$login'";
+            $q = "select * from users where login='$login' and password='$hash'";
             $set = $db->query($q);
             $set->next();
             $user_id = $set->getString('user_id');
             $user_name = $set->getString('login');
         break;
         case "id":
-            $q="select * from users where user_id='$login'";
+            // HA! if it is number, escape_string is not enough
+           $login=intval($login);
+
+            $q="select * from users where user_id='$login' and password='$hash'";
             $set=$db->query($q);
             $set->next();
             $user_id=$set->getString('user_id');
@@ -34,8 +33,7 @@ function login() {
         break;
     }
 
-    $ldap_response=LDAPuser::auth($user_id,$password);
-    if ($set->getString('password') != $hash and !$ldap_response) {
+    if (!$set) { //XXX test
         $error="Zadal si nespravne uzivatelske meno [alebo id] alebo heslo. Rob so sebou nieco";
         return false;
     }
@@ -53,11 +51,11 @@ Prajem prijemnu odvykacku:-)";
             return false;
         }
 
-//ldap replicate
-// LDAPuser::ldap_mysql_sync($user_name,$user_id,$password);
+//     Login sucessfull
 
+       // prevent session fixation
+       session_regenerate_id(); 
 
-//
         $cube_vector=$set->getString('cube_vector');
 
         // saves friends list as an array into user session
@@ -90,7 +88,6 @@ where node_access.user_id='$user_id' and node_bookmark='yes' order by node_name"
             $_SESSION['fook'][$fookset->getString('node_parent')]=true;
         }
 
-        LDAPuser::replicate($user_name,$user_id,$password);
 
         //save bookstyle into user session
         $q="select node_content from nodes where node_parent=19 and external_link='session://bookstyl' and node_creator='$user_id'";
@@ -109,9 +106,9 @@ where node_access.user_id='$user_id' and node_bookmark='yes' order by node_name"
             $_SESSION['mood_name'] = $mset->getString('node_name');
             $_SESSION['mood_content'] = addslashes(substr(strip_tags($mset->getString('node_content')),0,223));
         }
-
         // last login
-        $db->query(sprintf('update users set last_login = NOW() where user_id = %d', $user_id));
+
+       $db->query(sprintf('update users set date_last_login = NOW() where user_id = %d', $user_id));
 
         $_SESSION['user_id']=$user_id;
         $_SESSION['user_name']=addslashes($user_name);
This page took 0.126296 seconds and 4 git commands to generate.