За последние 24 часа нас посетил 59721 программист и 1763 робота. Сейчас ищет 841 программист ...

Вопрос по безопасности при работе с Сессиями

Тема в разделе "Прочие вопросы по PHP", создана пользователем CraftLawrence, 1 окт 2015.

  1. CraftLawrence

    CraftLawrence Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    40
    Симпатии:
    0
    Такой вопрос.
    Безопасно ли записывать в сессии относительно важные данные из БД по аккаунту пользователя, которые ему (этому пользователю) знать не нужно? Просто в уроках, по которым я делаю, все записывается в сессии, а я тут подумал.. может ли, теоретически, пользователь как-то найти в своем браузере эти данные по его аккаунту?
    Если да, то как с этим бороться? Желательно, без шифрования этих данных. Чтобы он и не знал, что есть что-то, что от него скрывают =)
    Неужто нужно каждый раз при обновлении страницы брать их из БД?

    В интернете ничего конкретного по моему вопросу не нашел. Просто даже не знаю, как это загуглить.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    пользователь не видит сессии. на его стороне только ключ от нее
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    на сервере создается файл где хранятся все эти данные, а у пользователя в браузере в куках хранится только лишь ID сессии по которому находится именно этот файл (возможно имя файла совпадает с этим ID).
     
  4. CraftLawrence

    CraftLawrence Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    40
    Симпатии:
    0
    Понял. Круто, спасибо)
     
  5. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Тебя успокоили ответы?
    Погугли про взлом сессий.
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    YSandro, а есть альтернатива сессиям?
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Этот вопрос лишен смысла.
     
  8. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Сессии - это хорошо. Но лучше действительно почитать подробней, что нужно сделать, чтобы появилась некоторая безопасность.
    и т.д.
     
  9. CraftLawrence

    CraftLawrence Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    40
    Симпатии:
    0
    Там данные информационного характера, но знать их не желательно.
    Но спасибо, и правда есть что почитать.
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дело не в том, какие там данные. А в том, что их можно будет поменять втихую себе, в некоторых случаях. Назначить себя админом, даже не трогая бд, например.
     
  11. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Код (PHP):
    1. public static function is() {
    2.     static $is;
    3.     if($is) {
    4.         return $is;
    5.     }
    6.     $is=($self=self::$self) && ($id=$self->sess('id')) && self::check($id) && $self->sess('ip')==self::ip() && $self->sess('agent')==self::agent();
    7.     return $is;
    8. }
    Код (PHP):
    1. if(user::is()) {
    2. //.....
    3. }
    Как - то так, нужно максимально верифицировать.
    Про админа уже тут немного сложнее, тут нужно сделать вход + права проверить.
     
  12. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    лехко! ))) в любом браузере есть "инструмент разработчика" где можно заглянуть в куки странички. но ничего интересного там не увидишь. ид сессии - это как бы "индекс в массиве данных", а не сами данные.

    опасность в том, что эти тупые строчки могут быть скопированы javascript-ом и кто-то может попытаться выдать себя за тебя. то есть JS-инъекция делает уязвимыми сессии в том числе.

    другой вариант провала это когда кто-то получает возможность читать файлы из папки с сессионными файлами.

    вот этого не надо этого бояться.

    Добавлено спустя 8 минут 50 секунд:
    [оффтопик]
    Господа модераторы!
    Наш раздел "Программирование на PHP" лишний! Остальные разделы как-то более-менее структурируют информацию, а сюда попадают темы, которым место в "PHP для новичков". В конце концов, если автор затрудняется выбрать раздел, есть "Прочие вопросы по PHP". Но этот раздел просто ни о чём! 100% энтропия. Предлагаю его снести, а темы вывалить в "новичков".
    [/оффтопик]
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну фик знает. Может это просто потому что кроме новичков тут никто не создаёт темы, а старожилам спрашивать нечего? =(