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

Форум MySQL

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

 

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

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

тема: Степень надежности авторизации

Сообщения:  [1-7] 

 
 автор: Киналь   (14.08.2006 в 13:10)   письмо автору
 
   для: Loki   (14.08.2006 в 12:49)
 

>А что произойдет если в куках логина нет?
Есть. Приведенный кусок выполняется только если isset($_COOKIE['login'])

В общем. понятно - брать логин из БД, проверять не >0, а ==1; остальное вроде терпимо=)
Спасибо всем!

   
 
 автор: Loki   (14.08.2006 в 12:49)   письмо автору
 
   для: Киналь   (13.08.2006 в 23:26)
 

А что произойдет если в куках логина нет?
И еще, лучше проверять так:

if (mysql_num_rows($t_res) == 1) 

   
 
 автор: Киналь   (14.08.2006 в 01:40)   письмо автору
 
   для: MAN|AK   (14.08.2006 в 00:18)
 

Бессмысленно подменять логин, потому что проверка идет по _сочетанию_ логина и пароля.

   
 
 автор: MAN|AK   (14.08.2006 в 00:18)   письмо автору
 
   для: Киналь   (14.08.2006 в 00:03)
 

А смысл устанавливать кукис на логин если он не нужен, и его подмена не к чему не привелёт7 )

   
 
 автор: Киналь   (14.08.2006 в 00:03)   письмо автору
 
   для: Boss   (13.08.2006 в 23:53)
 

А смысл его подменять? Проверка ведь идет по сочетанию логина и пароля.

   
 
 автор: Boss   (13.08.2006 в 23:53)   письмо автору
 
   для: Киналь   (13.08.2006 в 23:26)
 

Может лучше сделать так:

<?
$t_res 
= mysql_query("SELECT id, login FROM users WHERE login='$t_login' AND password='$t_pass'"); 
if (mysql_num_rows($t_res) > 0

list(
$login) = mysql_fetch_array($t_res);
$_SESSION['login'] = $login

?>


Логин береться непосредствено из БД, т.к. в COOKIE его можно подменить, и сессия будет неправильной ...

   
 
 автор: Киналь   (13.08.2006 в 23:26)   письмо автору
 
 

Решил подсократить авторизацию и написать так:

$t_res = mysql_query("SELECT id FROM users WHERE login='$t_login' AND password='$t_pass'");
 if (mysql_num_rows($t_res) > 0)
     {
      $_SESSION['login'] = $_COOKIE['login'];
     }

Переменные в запросе. ессно, заранее проверены и обработаны, в куке и базе пароль в md5; на других страницах проверяю только isset($_SESSION['lgin']). Тут есть какие-нибудь подводные камни? А то что-то вдруг засомневался...

   

Сообщения:  [1-7] 

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

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