Advertisement
Guest User

Untitled

a guest
Feb 1st, 2016
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.26 KB | None | 0 0
  1. // LOGIN VALIDATION
  2. if(isset($_POST['login'])){
  3.     if((!empty($_POST['email'])) AND (!empty($_POST['password']))){
  4.         $email = $_POST['email'];
  5.         $password = $_POST['password'];
  6.        
  7.         // PREPARE STATEMENT TO AVOID SQL INJECTION
  8.         $sql = "SELECT id, email, password FROM users WHERE email = :email AND access_level > 0 LIMIT 1";
  9.         $results = $db_connect->prepare($sql);
  10.         if($results->execute(array(':email' => $email))){
  11.             $user_data = $results->fetch();
  12.             $account_found = $results->rowCount();
  13.             if ($account_found != 0) {
  14.                 $db_user_id = $user_data['id'];
  15.                 $db_email = $user_data['email'];
  16.                 $db_password = $user_data['password'];
  17.  
  18.                 // BRUTE FORCE CHECK
  19.                 $remote_ip = $_SERVER['REMOTE_ADDR'];
  20.                 $sql = "
  21.    SELECT  attempt_nr
  22.    FROM    users_login_attempts
  23.    WHERE   user_id = :userid
  24.    AND     time > DATE_SUB(NOW(), INTERVAL 1 HOUR)
  25.    AND     user_ip = :userip
  26.    ";
  27.                 $results = $db_connect->prepare($sql);
  28.                 if ($results->execute(array(':userid' => $user_id,':userip' => $remote_ip))){
  29.                     $count_tries = $results->rowCount();
  30.                     if ($count_tries < 5) {
  31.                         var_dump($count_tries);
  32.                         // PASSWORD VERIFICATION
  33.                         if(password_verify($password,$db_password)){
  34.                             // SET SESSIONS WITH XXS PROTECTION
  35.                             $_SESSION['user_id'] = preg_replace("/[^0-9]+/", "", $db_user_id);
  36.                             $user_browser = $_SERVER['HTTP_USER_AGENT'];
  37.                             $_SESSION['login_string'] = hash('sha512', $db_user_id.$user_browser);
  38.                            
  39.                             // SUCCESSFULL
  40.                             $log_error .= $database_log_1;
  41.                         }else{
  42.                             // INCORRECT PASSWORD, INPUT INTO BRUTH FORCE
  43.                             $sql = "INSERT INTO users_login_attempts (user_id, time, user_ip) VALUE (:userid,NOW(),:userip)";
  44.                             $results = $db_connect->prepare($sql);
  45.                             if($results->execute(array(':userid' => $db_user_id,':userip' => $remote_ip))){
  46.                                 // RETURN BRUTE FORCE ERROR
  47.                                 $log_error .= $database_log_2;
  48.                             }else{
  49.                                 // DATABASE BRUTE INSERT ERROR
  50.                                 $log_error .= $database_log_3;
  51.                             }
  52.                         }
  53.                     }else{
  54.                         // BRUTE FORCE LIMIT REACHED
  55.                         $log_error .= $database_log_4;
  56.                     }
  57.                 }else{
  58.                     // DATABASE ERROR
  59.                     $log_error .= $database_log_5;
  60.                 }
  61.             }else{
  62.                 // IF NO USER EXIST
  63.                 $log_error .= $database_log_6;
  64.             }
  65.         }else{
  66.             // DATABASE ERROR
  67.             $log_error .= $database_log_7;
  68.         }
  69.     }else{
  70.         // FORM ERROR - NOT ALL FILLED
  71.         $log_error .= $database_log_8;
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement