Моя авторизация. Правильно ли я делаю

Nicca

Новичок
Моя авторизация. Правильно ли я делаю

Что-то непонятное творится с моим сайтом... Такое впечатление что кто-то имеет доступ к админской части

Ниже я приведу код своей авторизации Можно ли это использовать? Насколько это безопасно?(Тоесть сложно ли ее обойти и если да то как?)

PHP:
session_start();
if($logout==1)
	{
		session_unregister("ok_user");
		session_destroy();
	}
if(isset($_POST['login']))
		{
		    $loginusername = $_POST['username'];
			$loginpassword = $_POST['password'];
			$sql="select user from users where user='$loginusername'";
			$res=db_select($sql);  
			$n=mysql_num_rows($res);
			if($n>0)
				{
					$sql="select pass from users where user='$loginusername'";
					$res=db_select($sql);
					$pass=mysql_result($res, 'pass');
					if($pass != md5($loginpassword))
					  {
						LogIn('Неправильный пароль.');
					  }
					  else
					  {
					  	$ok_user=$loginusername;
						session_register("ok_user");
						Header("Location: index.php");
					  }
				}
			else
				{
					login('Неправильный пароль.');
					exit();
				}	
				
				
		}
else
	{
		login('');
		exit();
	}
В коде login - это функция которая выводит форму авторизации
 

Nicca

Новичок
Cимм так в чем проблемы то? Ну на словах можешь сказать? Интерисует только можно ли такое обойти и если да то где и что нужно менять.

-~{}~ 20.04.05 16:44:

PHP FAQ: Не передаются переменные! Проблема register_globals
А это при чем сдесь?
 

SiMM

Новичок
> if($n>0)
и далее - кривота... (если мои догадки по поводу функции login верны)
> А это при чем сдесь?
При том. Учись писать нормально. $logout - дикость (может вообще не срабатывать), [m]session_register[/m] - антиквариат ещё тот.
 

Фанат

oncle terrible
Команда форума
нафига делать два запросе?
почему не запросить сразу логин с паролем?
 

Valensia

Guest
По поводу 2 запросов - согласен. Но в данном случае думаю это не принципиально важно.
> if($n>0)
и далее - кривота... (если мои догадки по поводу функции login верны)
В чем именно кривота?
 

SiMM

Новичок
> В чем именно кривота?
В том что выполнение скрипта продолжается. Если, конечно же, мои домыслы по поводу функции login верны :)
 

Valensia

Guest
Функция логин выводит только форму. Если передаем ккакой-то текст, то выводится и текст ошибки(например неудачной авторизации)
 

SiMM

Новичок
Tor, а я думал достаточно логин подобрать :)
Кстати, если не ошибаюсь, это не сработает.
> У меня включены magic_quotes=ON
А это никого не волнует.
 

Valensia

Guest
Simm я что-то ничего не понял. В чем кривота кода? Выполнение какого скрипта продолжается? Там же идет Header("Location: index.php");
 

SiMM

Новичок
> Там же идет Header
А в каком случае? :)
PS: я понятия не имею, что у тебя там ниже по скрипту. В любом случае, выглядит это диковато.
 

t3[0one]

Новичок
в книжке PHP 4 вычитал давно :
PHP:
........
if(!$db->query("SELECT * FROM users WHERE Login='$login' AND pwd='$pwd'")){
			die($db->error());
		}
		$num=$db->numrows();
		if ($num != 0){
//есле такое login/password сочитания есть
}else{
//если такое login/password сочитаение нету
}
зачем делать еще какие то запросы
......
не учитывая ссылки SiMM-а ..это обезательно !Всмысле всё что там есть надо сделать )

-~{}~ 20.04.05 18:13:

Автор оригинала: Tor
$loginusername="admin';update users set pass='1111';"
only asp +)
 
Сверху