Показать сообщение отдельно

  #2  
Старый 02.09.2009, 04:05
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
С нами: 10269701

Репутация: 58
Question

тут написал функцию аунтификации и идентификации....подскажите возможно ли обойти данную аунтификацию.
cоотвественно если да, то каким макаром.
PHP код:
  public function security($string,$i) {
    if (
$i == 0) { ...  }
    elseif (
$i == 1) { ... }
    elseif (
$i == 2) { ... }
    elseif (
$i == 3) {
      
$string mysql_real_escape_string($string);
    }
    return 
$string;
  }
}

public function 
login($login,$pass) {
    
$this->connect();
    
$login strtolower($this->security($login,3));
    
$login base64_encode($login);
    
$pass base64_encode($this->security($pass,3));
    
$result $this->query("SELECT * FROM `users` WHERE `login`='".$login."' AND `pass`='".$pass."'");
    if (
$result && mysql_num_rows($result) > 0) {
      
$ses session_id();
      if (
preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) {
        
$agent $this->security($_SERVER['HTTP_USER_AGENT'],3);
        
$referer $this->security($_SERVER['HTTP_REFERER'],3);
        
$forwarded $this->security(getenv(HTTP_X_FORWARDED_FOR),3);
        
$ip $_SERVER["REMOTE_ADDR"];
        
$time time() + (60*60*6);
        
$result $this->query("INSET INTO `login`(`hash`,`date_begin`,`date_end`,`login`,`ip`,`agent`,`referer`,`forwarded`) VALUES('".$ses."','".time()."','".$time."','".base64_decode($login)."','".$ip."','".$agent."','".$referer."','".$forwarded."')");
      }
    }
    else {  }
    
$this->close();
  }
  public function 
ident() {
    
$this->connect();
    
$ses session_id();
    if (
preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) {
      
$result $this->query("SELECT * FROM `login` WHERE `hash`='".$ses."' AND `ip`='".$_SERVER["REMOTE_ADDR"]."'");
      if (
$result && mysql_num_rows($result) > 0) {
        
$row mysql_fetch_array($resultMYSQL_ASSOC);
        if (
$row['date_begin'] <= time() && $row['date_end'] >= time()) {
          return 
1;
        }
        else { return 
0; }
      }
      else { return 
0; }
    }
    else { return 
0; }
    
$this->close();
  } 
 
Ответить с цитированием