За последние 24 часа нас посетил 15681 программист и 1549 роботов. Сейчас ищут 1007 программистов ...

запомнить юзера в куках

Тема в разделе "PHP для новичков", создана пользователем vikrorpert, 17 янв 2011.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    допустим я хочу запомнить залогиненого юзера в куках. как правильно и безопасно сделать?
    как я понимаю просто записать в куки auth=1 или имя юзера опасно потому что можно вручную выставить потом куку
     
  2. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    auth=1 нужно хранить на стороне сервера в сессии. ($_SESSION) в куках будет храниться только ключ сессии (SESSIONID). в общем поизучай механизм http-сессий и в частности php-сессий
     
  3. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Иначе говоря, значение куки должно быть уникальным, например 73msp8od1f7ge5ade1v57jv8d6 - это моя текущая сессия на PHP.RU, теперь я должен авторизоваться заново, т.к. эта сессия небезопасна... и любой желающий может воспользоваться этими данными, чтобы зайти под, уже авторизованным, логином Devzirom

    http://ru.wikipedia.org/wiki/HTTP_cooki ... 0.B8.D1.8F
     
  4. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    дело в том что я про это знаю
    мне нужно практическое решение
    например записали в куку юзеру какойто хеш, а на серваке же его надо хранить? а базе?
    или хешировать логин и пароль юзера а потом сверять каждый раз при запросе страницы со значением из кук?
     
  5. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    У php есть внутренний механизм сессий http://uk.php.net/manual/en/book.session.php

    Ранее я пробовал создать свой механизм сессий, но почему-то браузер отправлял куку не в каждом запросе, возможно я что-то упустил. Но больше, создавать этот механизм не пробовал.

    Идентификатор сессии - обычно случайная строка, хранят его обычно там же где и логин и пароль. Идентификатор сессии должен меняться с началом новой сессии(вопрос безопасности), поэтому не может быть хешем статического значения.

    Рекомендую ознакомиться http://www.php.ru/forum/viewtopic.php?t=15658
     
  6. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    да при чем тут сессии? мне нужно хранение признака залогинености юзера на год а сессии уничтожаются через короткое время
     
  7. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
  8. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    наверно мы говорим на разных языках о разных вещах
     
  9. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Если я правильно понял, это автологин у Вас.
    Вам нужно присвоить GUID юзеру и хранить его и в куках и в БД. При входе на сайт сравнивать, если есть, или назначать новый GUID, если нет или не найден в БД. При выходе(log out) или истечении срока хранения или отсуствия в БД или автологин отключен - убивать. Примерно так...
     
  10. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    да, но только не хочется для этого заводить таблицу
     
  11. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Возможно

    Что есть ваша php-школа?(Где учились? Кто учил? Когда это было?)
     
  12. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Зачем? У Вас уже есть таблица юзеров - добавьте поле.