Система входа и сеансов (php) - PullRequest
2 голосов
/ 08 апреля 2010

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

Было бы безопасным и правильным способом сохранения идентификатора пользователя, вошедшего в систему в переменной Session?

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

РЕДАКТИРОВАТЬ: будет ли более безопасным размещение идентификатора пользователя с каждой страницы на следующую?

Ответы [ 4 ]

1 голос
/ 08 апреля 2010

Вот что значит сеанс Для безопасности сеанса вы можете проверить http://phpsec.org/projects/guide/4.html

1 голос
/ 08 апреля 2010

Вот статья о безопасности сеанса

Если вы зашифруете имя пользователя таким образом, что только ваши PHP-скрипты смогут его расшифровать, тогда вы должны быть в безопасности, я думаю.

0 голосов
/ 08 апреля 2010

Хотя я не знаю, каким образом пользователь мог бы манипулировать информацией в $_SESSION, если ваш код (или код на вашем сервере) не позволяет им, так что не делайте ничего сумасшедшего, как ...

foreach($_POST as $key=>$value) { // DON'T DO THIS
    $_SESSION[$key] = $value; // DON'T DO THIS!
} // WHY ARE YOU DOING THIS!?

Вы не должны делать ничего подобного, когда вы просто помещаете все данные, которые пользователь дает вам, в ваши $_SESSION переменные. Как и в базе данных, запись в сессию должна рассматриваться как форма вывода, и вам следует соответствующим образом очистить то, что вы в нее поместили (и куда ее положили).

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

Что не так безопасно, так это идентификатор сессии, так как есть несколько простых способов взломать сессию в PHP .

Я рекомендую проверить ту книгу, на которую я ссылаюсь, Essential PHP Secutiry . Это очень маленькое и прямое (но подробное) объяснение нескольких основных концепций безопасности PHP, многие из которых могут быть обобщены и должны учитываться при выполнении любой работы веб-разработчика.

0 голосов
/ 08 апреля 2010

Я расскажу о поведении сеанса по умолчанию, здесь: сеансы основаны на файле cookie "PHPSESSID", для которого установлена ​​контрольная сумма MD5 (32 буквенно-цифровых символа). PHP принимает этот файл cookie из браузера и использует его для загрузки данных сеанса на стороне сервера. У клиента нет прямого способа изменить данные в сеансе, но он может указать собственный идентификатор сеанса.

Вы можете добавить дополнительные уровни безопасности (SSL, проверка IP-адреса клиента и т. Д.), Но по умолчанию, если я знаю ваш файл cookie, я могу эффективно войти в систему как вы. Насколько это «легко», ну, это зависит от множества других уровней безопасности: кто-то отслеживает ваш трафик, установлено ли у вас вредоносное ПО и т. Д.

Инструменты типа Suhosin пытаются улучшить безопасность сеанса.

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