Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: авторизация mysql

Сообщения:  [1-10]   [11-12] 

 
 автор: Trianon   (02.08.2009 в 22:42)   письмо автору
 
   для: t3ma   (02.08.2009 в 15:57)
 

Как должно быть что?

  Ответить  
 
 автор: Trianon   (02.08.2009 в 22:38)   письмо автору
 
   для: Ringo   (02.08.2009 в 22:35)
 

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

  Ответить  
 
 автор: 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){}
В результате. Даже если уведут пароль из базы. злоумышленник не сможет им воспользоваться. тк попросту не сможет расшифровать.

  Ответить  
 
 автор: t3ma   (02.08.2009 в 15:57)   письмо автору
 
   для: Trianon   (02.08.2009 в 14:41)
 

если Вам не сложно то как должно быть ?

  Ответить  
 
 автор: Trianon   (02.08.2009 в 14:41)   письмо автору
 
   для: t3ma   (02.08.2009 в 14:19)
 

Ответ неверный.
Надо было в начале файла поставить error_reporting(E_ALL | E_NOTICE);

Замечания стандартные.
Перехват кукисов отдает аутентифицированный сеанс на сторону.
А если пользователь, отключив кукисы (сессионный механизм стал работать, передавая идентификатор сессии в GET-параметре), передал/отправил кому-то ссылку на ресурс, то с этой ссылкой он отдает и сеанс.

  Ответить  
 
 автор: t3ma   (02.08.2009 в 14:19)   письмо автору
 
   для: t3ma   (02.08.2009 в 12:17)
 

разобрался.. надо было в menu.php в начале файла поставить session_start();

есть предложения и замечания по коду ? с удовольствием выслушаю

  Ответить  
 
 автор: Рома   (02.08.2009 в 12:32)   письмо автору
 
   для: t3ma   (02.08.2009 в 12:17)
 

А как я буду регистрироваться на вашем сайте, если мой любимый пароль <h1>Рома</h1> ?

  Ответить  
 
 автор: t3ma   (02.08.2009 в 12:17)   письмо автору
 
   для: 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_user0);

  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>"
;

?>

  Ответить  
 
 автор: Trianon   (02.08.2009 в 11:53)   письмо автору
 
   для: t3ma   (02.08.2009 в 11:51)
 

>ну никто непоможет с моей проблемой ... в итоге $_SESSION['user'] почемуто пустая

А я вот считаю, что проблема в том, что Вы где-то нашли похабный код, и теперь его здесь показываете.
Выкиньте каку.

  Ответить  
 
 автор: t3ma   (02.08.2009 в 11:51)   письмо автору
 
   для: 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($query0); 

       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 (
"Ошибка идентификации: посетитель не зарегистрирован");  
        
    } 

?>

  Ответить  

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования