
02.09.2009, 04:05
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
С нами:
10269701
Репутация:
58
|
|
тут написал функцию аунтификации и идентификации....подскажите возможно ли обойти данную аунтификацию.
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($result, MYSQL_ASSOC);
if ($row['date_begin'] <= time() && $row['date_end'] >= time()) {
return 1;
}
else { return 0; }
}
else { return 0; }
}
else { return 0; }
$this->close();
}
|
|
|