За последние 24 часа нас посетили 18542 программиста и 1748 роботов. Сейчас ищут 782 программиста ...

учитывает ли это механизм сессий в PHP?

Тема в разделе "PHP для новичков", создана пользователем Ruzzz, 22 фев 2008.

  1. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    вот интересно на основе чего делается SID? это хеш чего-то, или просто по rand как-то генериться? учитывается ли изменение IP? каких-то заголовков запроса? сильно не бейте :) может хоть ссылки дадите.

    Просто было бы прикольно заставлять пользователя снова пройти авторизацию если изменился IP, заголовок браузера, изменение заголовков связанных с прокси ну и еще что-то может.
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    http://php.net/session_set_save_handler - и сохраняй сессию как тебе душа пожелает.

    P.S. Читал где-то, что сессию нельзя подделать. Сам id генерируется через сложную систему дырка которой только на выходе: id-то не очень длинный.

    Или типа того там было написано. Блин. Линк не могу найти. :(
     
  3. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ruzzz
    К сожалению нет (и это одна из причин, по которой никогда не пользуюсь стандартными сессиями в ПХП). Достаточно узнать SID и можно зайти под ним откуда угодно.
     
  4. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Dagdamor
    а где это оффиц. написано? про гугл я знаю ) ну все же
     
  5. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ruzzz
    По-моему, в явном виде нигде не написано, но если ты посмотришь на содержимое файлов с сессиями, которые создает PHP, ты не увидишь там ни IP, ни юзер-агента - только сами сессионные данные. Там даже даты последней активности сессии нет - но ее, как я понимаю, PHP просто берет из даты изменения файла. А раз эти данные нигде не хранятся, значит, и проверку на них сделать нельзя.
     
  6. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Но как работает сам алгоритм генерации SID? вот это хотелось бы почитать. Может он деалет хеш на основе данных например того же IP? ну вообщем я только начал изучать работу с сессиями :) буду щас проверять, от чего сессия "обрывается" а от чего нет!
     
  7. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ruzzz
    SID генерируется случайным образом. Никаких премудростей там нет.
     
  8. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Понял! Жаль :( А мне вот как новичку это сразу как-то таким очевидным показалось, почему же разработчики не обратили на это внимание, хотя бы опционально добавили что-ли. Может все таки есть что то помогающее?
     
  9. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    Ruzzz
    a впринципе что тебе мешает написать свою реализацию сессий? и учитывай всё что хочешь
     
  10. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
  11. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    спрашивай :) сможем - поможем ;)
     
  12. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    У меня раньше сид вот так генерировался:
    PHP:
    1. <?php
    2. $this->SID = md5(uniqid(NULL, true));
    Сейчас у меня более навороченная система которая учитывает IP и User_agent. При этом IP и User_agent проверяются и в другом месте отдельно.