Помогите с систеемой авторизации

Печать RSS
299

Н

Голубые штаны
0
whatthefuck (26 Марта 2012 / 15:55)
да и вообще это маразм возиться с хэшированием на мелких pda проектах, кому нафиг нужны эти пароли, если только из баловства, понимаю вот порталы qip.ru, mail.ru вот там то можно похэшировать...
Если уж делать, то делать нужно нормально. А не абы как. Согласись. Не стоит так наплевательски относиться к безопасности.

2000 лет д.н.э.
0
Wapruks (26 Марта 2012 / 14:07)
впервые вижу такой запрос. Что он делает? При чем здесь сессии то?
Результат в файл

Добавлено через 02:17 сек.
whatthefuck (26 Марта 2012 / 13:55)
и кстати говоря можно быть хитрым, и варьировать с хэшированием, например substr(md4('text'),1,8) к примеру собъет с толку 90% кулхацкеров совершенно...
Идея правельная но недодуманная.

крутой чЕл
0
22. Прям ждал,когда ты напишешь D

Ну в файл и что даст то это? Это если уж не фильтровать данные,то можно получить. А сессии то причем?
Автор
Землянин
0
Регистрация проходит нормально, но не получается войти, из базы логин не извлекает(а регистрирует норм.)

крутой чЕл
0
Друзья,встаньте в круг,возьмитесь за руки и повторяйте "не извлекает из базы логин". Сейчас я скажу какая проблема
Автор
Землянин
0
сейчас я дам код
Автор
Землянин
0
Я изменял пример для изучения авторизации
<?

session_start();

include ('mysql.php');

if (isset($_GET['logout']))
{
	if (isset($_SESSION['user_id']))
		unset($_SESSION['user_id']);
		
	setcookie('login', '', 0, "/");
	setcookie('password', '', 0, "/");
	// и переносим его на главную
	header('Location: ../index.php');
	exit;
}
if (isset($_SESSION['user_id']))
{
	// юзер уже залогинен, перекидываем его отсюда на закрытую страницу
	
	header('Location: index.php');
	exit;

}
if (!empty($_POST))
{
	$login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
	$query = "SELECT `salt`
				FROM `users`
				WHERE `login`='{$login}'
				LIMIT 1";
	$sql = mysql_query($query) or die(mysql_error());
	
	if (mysql_num_rows($sql) == 1)
	{
		$row = mysql_fetch_assoc($sql);
		
		// итак, вот она соль, соответствующая этому логину:
		$salt = $row['salt'];
		
		// теперь хешируем введенный пароль как надо и повторям шаги, которые были описаны выше:
		$password = md5(md5($_POST['password']));
				$query = "SELECT `id`
					FROM `users`
					WHERE `login`='{$login}' AND `password`='{$password}'
					LIMIT 1";
		$sql = mysql_query($query) or die(mysql_error());

		// если такой пользователь нашелся
		if (mysql_num_rows($sql) == 1)
		{
			// то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)

			$row = mysql_fetch_assoc($sql);
			$_SESSION['user_id'] = $row['id'];
			
			
			// если пользователь решил "запомнить себя"
			// то ставим ему в куку логин с хешем пароля
			
			$time = 86400; // ставим куку на 24 часа
			
			if (isset($_POST['remember']))
			{
				setcookie('login', $login, time()+$time, "/");
				setcookie('password', $password, time()+$time, "/");
			}
			
			// и перекидываем его на закрытую страницу
			header('Location: index.php');
			exit;
			}
		else
		{
			die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href="../index.php">Авторизоваться</a>');
		}
	}
	else
	{
		die('пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href="../index.php">Авторизоваться</a>');
	}}
	?>

крутой чЕл
0
А ошибка какая?
Автор
Землянин
0
28. Wapruks, пишет нет такого логина, хотя он есть в базе и пароль верный

крутой чЕл
0
`salt` это пароль или соль к паролю?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск