Переменные сессии могут быть одурачены (логин)? - PullRequest
6 голосов
/ 15 марта 2010

В PHP: Есть ли у пользователя способ подделать переменную сеанса?

Безопасно ли доверять значению переменной сеанса для системы входа в систему?

Ответы [ 4 ]

16 голосов
/ 15 марта 2010

Данные сеанса хранятся на сервере. Только идентификатор сеанса передается вперед и назад между клиентом и сервером. Если серверный сценарий не испортился (или есть ошибка), клиент не может изменить данные сеанса напрямую. Но вы должны убедиться, что только «правильный» клиент знает идентификатор сеанса, так как он связывает этого конкретного клиента с конкретным сеансом. Например. (поскольку вы упомянули логин) используйте session_regenerate_id () всякий раз, когда выполняется логин (попытка), чтобы предотвратить фиксацию сессии

7 голосов
/ 15 марта 2010

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

4 голосов
/ 15 марта 2010

Да .. Это называется сессия кузница / угон.

Вы изменяете значение файла cookie сеанса, пока не получите другой сеанс пользователя.

0 голосов
/ 05 января 2013

Чтобы избежать сохранения данных сеанса на сервере, вы можете подписать содержимое, которое вы хотите защитить от изменений, перед сохранением его в сеансе, а затем проверить сразу после извлечения из сеанса. В PHP этот процесс достаточно прост и устраняет проблемы хранения на сервере.

Обратите внимание, что это не защищает данные сеанса от визуализации. Если вам нужна эта защита, вы все равно можете избежать хранения на сервере, используя безопасное шифрование. Просто имейте в виду, что практически каждая схема шифрования на основе размера ключа может быть взломана в ближайшем будущем. Поэтому, если вам нужно защитить данные сеанса, скажем, на 5 лет, безопасный выбор ключа и алгоритма может создать проблемы с производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...