Как реализовать страницу подтверждения пароля, когда пользователь уже вошел в систему? - PullRequest
0 голосов
/ 11 ноября 2011

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

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

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

Структура, к которой я стремлюсь, может выглядеть следующим образом: current page --(user goes onto history log)-> Please confirm your password --(user gets the correct password)-> history log page 1 --(user wants the next page of the history log)-> history log page 2 --(user goes to the home page)-> home page --(user goes onto history log)-> Please confirm your password --(user gets the correct password)-> history log page 1

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

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

Спасибо, Джордан.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

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

Я создаю объект с именем$ scookie, который я использую, чтобы определить, как я хочу, чтобы мои сеансы.

session_set_cookie_params( 
$scookie->lifetime, 
$scookie->path, 
$scookie->rootDomain, 
$scookie->secure, 
$scookie->httponly);

session_start();

В приведенном выше примере, когда я занимаюсь угоном (всего, что имеет логин пользователя), я проверяю, установлен ли $ scookie-> secureк истине.

0 голосов
/ 11 ноября 2011

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

Более того, я бы использовал общий механизм, подобный этому:

На всех ваших страницах установите

$page_section = 'something';

, а затем добавьте небольшой фрагмент кода:

if(isset($_SESSION['last_visited_section']) && $_SESSION['last_visited_section'] != $page_section){
    //New section visited, you could reset $_SESSION['last_visited_section'] or anything relative to your security mechanism here
}

Помогает ли это?

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