Guest User

Untitled

a guest
Jul 7th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.40 KB | None | 0 0
  1. <?php
  2. // Block direct access to this file
  3. if( !defined("svncontrol_inc") ) {
  4.     die( "Direct access of this file is not allowed." );
  5. }
  6.  
  7.     session_start();
  8.     session_regenerate_id();
  9.    
  10.     // Switch modes
  11.     if( isset($_SESSION['FIRST']) )
  12.         $_SESSION['FIRST'] = false;
  13.    
  14.     // Check IP and useragent or login
  15.     if( isset($_SESSION['AUTHENTICATED']) ) {
  16.         if( md5($_SERVER['HTTP_USER_AGENT']) != $_SESSION['USERAGENT'] ||
  17.             md5($_SERVER['REMOTE_ADDR']) != $_SESSION['USERADDR'] ) {
  18.            
  19.             // Void this session and restart
  20.             session_unset();
  21.             session_destroy();
  22.             session_start();
  23.            
  24.             foreach( $_SESSION as $key => $value ) {
  25.                 unset( $_SESSION[$key] );
  26.             }
  27.         }
  28.     } elseif( isset($_REQUEST['USERNAME']) && isset($_REQUEST['PASSWORD']) ) {
  29.         $user = strtolower( $_REQUEST['USERNAME'] );
  30.         $pass = base64_encode( pack("H*",sha1($_REQUEST['PASSWORD'])) );
  31.        
  32.         if( file_exists($svn_htpasswd) ) {
  33.             $lines = file( $svn_htpasswd );
  34.             foreach( $lines as $line ) {
  35.                 $userpasshash = explode( ':', $line );
  36.                 if( strtolower(rtrim($userpasshash[0])) === $user ) {
  37.                     // Found the user
  38.                     if( rtrim($userpasshash[1]) === '{SHA}'.$pass ) {
  39.                         // Success
  40.                         $_SESSION['AUTHENTICATED'] = true;
  41.                         $_SESSION['USERAGENT'] = md5( $_SERVER['HTTP_USER_AGENT'] );
  42.                         $_SESSION['USERADDR'] = md5( $_SERVER['REMOTE_ADDR'] );
  43.                         $_SESSION['FIRST'] = true;
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.     }
  49. ?>
Add Comment
Please, Sign In to add comment