За последние 24 часа нас посетили 16546 программистов и 1500 роботов. Сейчас ищут 952 программиста ...

конфликт переменных $_SESSION

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

  1. schmidt

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

    С нами с:
    9 сен 2012
    Сообщения:
    13
    Симпатии:
    1
    session_start и последующие $_SESSION['var'] = value уникальны для каждого сайта?
    Или может возникнуть конфликт имён переменных 'var'?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если все сессиих хранятся в одном месте, то можно исходить из того, что сессия привязана к идентификатору.
     
    schmidt нравится это.
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Уникальны для каждого session_id даже в рамках одного сайта. В этом и фишка.
    Каждый раз session_start(), если она не находит куки с id сессии, создаёт новый сессионный файл (если стандартный механизм сессий не переопределялся, конечно). Если кука находится, открывается старый файл. Ну это так, упрощённо.
     
    schmidt нравится это.
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    про сайты стоит уточнить, что пхп работает как пхп, а не как сайт. Т.е. на одном хостинге может быть несколько сайтов. Но если вдруг они работают с одним и тем же путём хранения сессий, то можно накуралесить.
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет, нельзя.
    Вероятность этого такая же, как вероятность, что ты руками сходу подберешь вслепую идентификатор чужой сессии с первой попытки.

    Сессия только в рамках одного домена существует. У тебя может быть хоть тысяча доменов на одном сервере и все равно хрен ты словишь пересечение сессий.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вероятность подразумевает возможность случайно, но получить результат
    и можно накуралесить нарочно, а не случайно =)
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    С тем же успехом можно очковать, что php выдаст двум пользователям одну сессию одновременно.
    Ну в таком разрезе вообще лучше к серверу не прикасаться. Никогда. И не кодить ничего. А то мало ли, захочется специально накуролесить всякое)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я ж могу на другом сайте получить сессию, а после на своём ее изменить.
     
  9. schmidt

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

    С нами с:
    9 сен 2012
    Сообщения:
    13
    Симпатии:
    1
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет, не можешь. Сессия завязана на cookie, cookie завязаны на домене. Даже если юзается один движок, но запросы приходят для разных доменов, сессии будут изолированы.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не
    я беру идентификатор сессии твоего сайта
    на моем сайте, если сессии хранятся в той же папке, то я могу куралесить.
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну если все сайты на одном серваке.
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    и если криворукий админ хреново настроил это дело так, что все сессии в одной папке живут. Но это уже не встречается.
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ды даже если все сессии в одной папке, ты не накуролесишь же, ну :)
    Объясни механизм.
    Это так не работает. Я уже писал о коллизиях сессий и их вероятности. Вероятность того, что дождь из жаб пойдет раз в сто выше.
    С тем же успехом, повторюсь, можно опасаться того, что на высокопосещаемом сайте тебе выдадут идентификатор сессии другого пользователя. Но это не случается. Я про подобное слышал лишь один раз - когда Badoo обосрались, когда переносили механизм сессий на мемкеш. В какой-то момент у них пошел глюк и всех начало логинить не с свою учетку, а в ту, что в следующей ячейке в памяти мемкеша.
    Но и то, виноваты были кривые руки тех, кто пилил механизм, а не пыховый генератор SSID :)
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    забей, ты не понимаешь видимо, что я говорю, потому что не хочешь =)
    я просто одно и то же пишу. Если у двух разных юзеров одного хостинга есть сайты, но папка с сессиями общая, им не надо угадывать идентификатор. Они просто зайдут друг к другу, получат идентификаторы, а потом, имея доступ к хранилищу сессий, они смогут конкретно свои сессии подправить и вообще смогут там шерудить, как им заблагорассудится. Это не вероятностный процесс. Это плохая настройка.
     
    denis01 нравится это.
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Вот так и надо было написать сразу :) То, что ты именно это имел ввиду, было нифига не очевидно из того, что ты говорил.
     
    denis01 нравится это.