|
|
|
|
|
для: t3ma
(02.08.2009 в 15:57)
| | Как должно быть что? | |
|
|
|
|
|
|
|
для: Ringo
(02.08.2009 в 22:35)
| | Двойное хеширование увеличивает сложность подбора пароля всего в два раза по сравнению с простым однократным. | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 15:57)
| | Замечание по коду:
вместо этого
$password = addslashes(strip_tags($_POST["pass"]));
используй
$password = md5(md5($_POST["pass"])));
то есть двойное хэширование. И сверяй с базой. В базу тоже придется записывать двойное хэширование.
А потом сравнивай. if($password == $db_password){}
В результате. Даже если уведут пароль из базы. злоумышленник не сможет им воспользоваться. тк попросту не сможет расшифровать. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2009 в 14:41)
| | если Вам не сложно то как должно быть ? | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 14:19)
| | Ответ неверный.
Надо было в начале файла поставить error_reporting(E_ALL | E_NOTICE);
Замечания стандартные.
Перехват кукисов отдает аутентифицированный сеанс на сторону.
А если пользователь, отключив кукисы (сессионный механизм стал работать, передавая идентификатор сессии в GET-параметре), передал/отправил кому-то ссылку на ресурс, то с этой ссылкой он отдает и сеанс. | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 12:17)
| | разобрался.. надо было в menu.php в начале файла поставить session_start();
есть предложения и замечания по коду ? с удовольствием выслушаю | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 12:17)
| | А как я буду регистрироваться на вашем сайте, если мой любимый пароль <h1>Рома</h1> ? | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2009 в 11:53)
| | щас сам написал с нуля
в итоге невыдает никакой ошибки и рекннектит на menu.php где $_SESSION["login"] пустая
ничего понять не могу
форма для входа
<?php
if (empty($_SESSION["login"]))
{
?>
<form action="auth_user.php" method="post">
<input type="text" name="login" value=""/>
<input type="password" name="pass" value="" />
<input type="submit" value="Авторизоваться">
</form>
<?php
}
else
echo "Здравствуйте, ".$_SESSION['login']."!";
?>
|
обработчик
<?php
require("config.php");
$login = addslashes(strip_tags($_POST["login"]));
$password = addslashes(strip_tags($_POST["pass"]));
$get_user = @mysql_query("SELECT password FROM users WHERE login='$login'");
if (mysql_num_rows($get_user) != 1)
{
exit("Неверное имя пользователя или пароль!");
}
$user_pass = @mysql_result($get_user, 0);
if (md5($password) != $user_pass)
{
exit("Неверное имя пользователя или пароль!");
}
session_id(md5($login . rand(0,100)));
session_start();
$_SESSION["login"] = $login;
$_SESSION["time"] = time();
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=menu.php'>
</HEAD></HTML>";
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 11:51)
| | >ну никто непоможет с моей проблемой ... в итоге $_SESSION['user'] почемуто пустая
А я вот считаю, что проблема в том, что Вы где-то нашли похабный код, и теперь его здесь показываете.
Выкиньте каку. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2009 в 11:49)
| | ну никто непоможет с моей проблемой ... в итоге $_SESSION['user'] почемуто пустая
fixed
<?php
require("config.php");
$login = addslashes(strip_tags($_POST["login"]));
$password = addslashes(strip_tags($_POST["pass"]));
$query = @mysql_query("SELECT password FROM users WHERE login='".$login."'");
if (!$query)
{
exit ("Ошибка выполнения запроса" .mysql_error());
}
if (@mysql_num_rows($query) > 0)
{
// Получаем пароль
$password_db = @mysql_result($query, 0);
if (md5($password) == $password_db)
{
session_id(md5($login . rand(0,100)));
if(session_start())
{
$_SESSION['user'] = $login;
$_SESSION["time"] = time();
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=menu.php'>
</HEAD><body>";
}
}
else
{
exit ("Ошибка идентификации: неправильный пароль");
}
}
else
{
exit ("Ошибка идентификации: посетитель не зарегистрирован");
}
?>
|
| |
|
|
|
|