2012-01-11 2 views
2

Я пытаюсь решить вопрос об уровне безопасности в отношении управления сеансом на моем сайте php. в верхней части каждой страницы является PHP тег, где я бегуСессии PHP и безопасность

if (!isset($_SESSION["user"])) {header('Location: login.php');} 

Сеанс пользователя создается при входе в систему, вы, ребята, думаете, что это достаточно безопасно? Весь сайт работает в SSL.

+0

Если я отправил поддельный сеанс с моим запросом, вы используете другую проверку, кроме этого, чтобы убедиться, что я не могу войти в систему, как кто-либо? –

+0

Это технически неправильно, оно будет генерировать предупреждение, если оно включено, оно должно быть 'if (array_key_exists ('user', $ _SESSION))' – Geoffrey

ответ

2

Ну, будучи в безопасности имеет 100 из разных тем ... Но с точки зрения того, что вы пытаетесь достичь, да я думаю, что это нормально

Я хотел бы добавить некоторые дополнительные проверки для проверки того, что $ _SESSION [ 'пользователь '] является правильным пользователем и пытается сравнить IP-адрес пользователя сеанса, USER AGENT и другие вещи для обнаружения Session Hi-Jacking

Вы также должны ВЫЙТИ; после заголовка («Location: X»):

header("Location: xyz.php"); 
exit; 
2

Да, это сработает. Чтобы сделать его менее подверженным ошибкам, поместите этот фрагмент в файл и включите его в начало каждой страницы. Таким образом вы просто редактируете одно место, чтобы вносить изменения в логику.

Также предполагается, что ваш заголовок местоположения содержит весь URL-адрес, начинающийся с https: согласно спецификациям RFC. Он может работать и для некоторых браузеров, но не должен зависеть.

0

Я думаю, что лучше создать случайный маркер строки, когда ваш пользователь хочет войти в свой веб-сайт. Затем проверьте его на каждой странице рядом с предыдущим кодом. Я использовал $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT'] и случайную строку, чтобы сделать это.

+0

его не всегда хорошая идея использовать REMOTE_ADDR, поскольку некоторые люди находятся за балансировкой нагрузки прокси (офисы govt), которые заставляют их перемещаться между IP-адресами при их просмотре. – Geoffrey

0

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

Смежные вопросы