Вы не зашли.
Главная » PHP » авторизация $_COOKIE
#61. TLENS Off (14)
Moderator
2011.09.15 01:01
Но зачем расшифровывать, если можно просто вставить в заголовок c куками и произвести авторизацию.
Я имею в виду шифровать пароль для записи в куку
Отредактировано TLENS (2011.09.15 01:01)
#62. Gemorroj Off (107)
Administrator
2011.09.15 08:08
это да, частая ошибка.
#63. DarkRiDDeR Off (4)
Участник
2011.09.15 09:09
Ну я про куки не говорил, в куки пароль воопще незачем пихать, хоть зашифрованны, хоть незашифрованный. Для авторизации существуют сесси, они для этого и созданы, и нечего делать авторизацию на куках: возможностей меньше и защита меньше.
#64. tipsun Off (19)
Moderator
2011.10.08 21:09
Или я снова, как всегда, не понимаю сути, или...

Все таки так, потому что это будет в шапке. А параметры мы задали в авторизации.
Код:
<?php
 
if (isset($_COOKIE['PHPSESSID'])) {
    
    session_start();
  }
 
?>
А так, при авторизации, если юзер нажмет запомнить.
Только вот сейчас вопрос возник, если юзер использовал сессию до истечения срока, например в 1 минуту, то удаление файла сессии снова отложится на 1440 сек или нет?

Код:
<?php
 
//session_set_cookie_params(1440, '/', '.'.$_SERVER['HTTP_HOST'], false, true);
 
ini_set('session.cookie_path''/');
ini_set('session.cookie_domain''.'.$_SERVER['HTTP_HOST']);
session_start();
 
?>
Отредактировано tipsun (2011.10.09 16:04)
#65. WapStyle Off (3)
Участник
2011.10.08 23:11
Давать пасс в куку (даже шифрованный) не есть айс. Как делаю я
1. При авторизации(успешной) в базу записыватся хеш(рандомный) для определённого юзера и этот же хеш даётся юзеру в куку
2. Если юзер покинул сайт (нажал выход) идёт уничтожение куки у юзера и смена хеш в базе на рандомный.
3. Пароль узнать невозможно и сменить тоже, даже если авторизация была успешной(если каким то макаром удалось своровать действуюбщий хеш), т.к. при смене попросит вести старый пароль.
Отсюда имеем у юзера нет хеша, а если он его сохранил он всёравно не подойдёт, т.к. при выходе скрипт скрипт сам поменял хеш. Если юзер боиться что его акк взломали просто нужно нажать выход и заново авторизироваться(хеш будет изменён)

Ну как так ))
#66. tipsun Off (19)
Moderator
2011.10.09 14:02
tipsun написал:
... Только вот сейчас вопрос возник, если юзер использовал сессию до истечения срока, например в 1 минуту, то удаление файла сессии снова отложится на 1440 сек или нет?
Время отсчитывается от последнеого обращения посетителя т.е. это время доступа к файлу, а не создания.
Отредактировано tipsun (2011.10.09 14:02)
#67. tipsun Off (19)
Moderator
2012.02.10 12:12
С механизмом запоминания наверно можно так поступить:
- при авторизации пользователь указывает сайту "запомни меня".
- сайт создает обычную сессию + куку, имя которой заносится в базу.
Если есть PHPSESSID у пользователя, значит не надо проверять куку.
Другое дело, если PHPSESSID есть, а файл сессии удалился...
Наверно проверить по куке и сгенерировать новый PHPSESSID.
Это я только сейчас додумался, точнее сама в голову пришла идея.
Хотя давно все так делают big_smile 100%
#68. Gemorroj Off (107)
Administrator
2012.02.10 17:05
можно еще при "запомни меня" время жизни сессии принудительно ставить большое.
#69. tipsun Off (19)
Moderator
2012.02.10 21:09
Получается session_id() в базу надо будет заносить.
Код напишу, выложу.
#70. tipsun Off (19)
Moderator
2012.02.10 23:11
Насчет сроков не посмотрел. Ну регерится с теми же сроками или нет.
Остальное за файлом/механизмом авторизации.
Код:
<?php
 
if (isset($_COOKIE['PHPSESSID'])) {
    session_start();
    
    if (! isset($_SESSION['SELF'])) {
        //Запрос к БД о наличии заданной session_id()
        //PHPSESSID=d65fjsmf8kc69ee8urb1glh855
        //Можно было бы и SELECT COUNT(1) FROM `users` WHERE `PHPSESSID`='d65fjsmf8kc69ee8urb1glh855'; +- LIMIT 1;
        //Но надо, наверно, вытащить какую-нибудь важную инфу, поэтому скорее всего...
        //SELECT `uid` FROM `users` WHERE `PHPSESSID`='d65fjsmf8kc69ee8urb1glh855' LIMIT 1;
        if (/*Подсчет кол-ва затронутых строчек*/) {
            $_SESSION = array();
            session_regenerate_id();
            $_SESSION['SELF'] = true;
            //выплевываем данные с массива базы в массив сессии...
        } else {
            //отрубить сессию, может быть.
        }
    }
}
Отредактировано tipsun (2012.02.10 23:11)
Страниц: 15 6 7 8 912 Все
Главная
WEB
PunBB Mod v0.6.2
0.016 s