2016-03-30 4 views
0

Я строю простой сайт в качестве домашней работы. Он требует входа в систему, чтобы просмотреть содержимое, но прямо сейчас, если я перейду на myserver/welcomepage.php, я вижу содержимое. Я использовал следующий код на welcomepage:PHP - Предотвращение accees для незарегистрированных пользователей

if (!isset($_SESSION['Username'])) { 
    header('Location:index.php'); 
    exit; 
} 

, но если кто-то попытается войти в систему с подвесным логин, а затем снова идет в MyServer/welcomepage.php он может видеть содержимое. Я читал об использовании IP или файлов cookie. Что вы рекомендуете?

+2

Я бы рекомендовал проверить поток аутентификации. Мне кажется, что ваше приложение установит '$ _SESSION ['Username']', даже если сбой входа. – frz3993

+0

Да, это была проблема. – Christakitos

ответ

0

Вы устанавливаете $_SESSION['Username'] при неудачном входе в систему. Проверьте функцию, в которой обрабатывается ваш логин, и установите только переменную сеанса, если вход в систему был успешным. Также убедитесь, что вы включили session_start(); на самом верху и что этот фрагмент кода появляется перед ЛЮБОЙ HTML, включая тег <html>. заголовок будет работать только в том случае, если он поступит до отправки любого выхода.

+0

Я думаю, что это наименее безопасный способ, верно? – Christakitos

+0

Я не уверен, что вы имеете в виду. –

+0

Я имею в виду, что сеанс защищает мою страницу приложения или ее легко обойти? – Christakitos

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