Как настроить безопасный сеанс PHP - PullRequest
3 голосов
/ 20 августа 2010

По аналогии с моим предыдущим вопросом - я не очень опытный программист PHP. Я ничего не знаю о сессиях или безопасности (кроме того, что я узнал час назад о md5 и sha1 с солью).

У меня есть система входа в систему, и я хочу создать сеанс, в котором хранится зашифрованная строка имени пользователя, смешанная с отметкой времени. Я знаю, как создать строку, но ничего не знаю о сессиях или о том, как они работают.

Я потратил последние часы на поиски решения, но все они кажутся слишком простыми или устаревшими, я ищу что-то, что имеет конкретную безопасность, но также простое (из-за моей неопытности).

Как бы я (на административных страницах) проверил, вошел ли пользователь в систему при условии, что эта строка зашифрована?

Я знаю, что есть похожие вопросы, но мне нужен ответ с точки зрения непрофессионала, так как я не знаю, как реализовать это решение.

Спасибо за любую помощь, которую вы можете предложить

Ответы [ 3 ]

2 голосов
/ 20 августа 2010

Я хочу создать сеанс, в котором хранится и зашифрована строка их имени пользователя

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

Как бы я (на административных страницах) проверил, зарегистрировался ли пользовательв, предполагая, что эта строка зашифрована?

Не сохраняйте имя пользователя в переменной сеанса, пока оно не будет аутентифицировано.Затем, если переменная заполнена, вы знаете, что пользователь прошел аутентификацию.

1 голос
/ 20 августа 2010

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

Вот запись в блоге Кори Баллоу http://www.jqueryin.com/2009/11/20/php-secure-sessions/, которая, я думаю, достаточно хороша, чтобы развеять ваши сомнения по поводу безопасности сеансов PHP.

1 голос
/ 20 августа 2010

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

Очевидно, это допускает изменения (например, сохранение в сеансе объекта User, который уже содержит информацию об административном статусе пользователя).

Данные в $_SESSION не могут (если вы не делаете что-то очень глупое) подделать клиент, так как они хранятся на сервере. Вам не нужно ничего шифровать или хэшировать.

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