当用户已经登录时,如何实施“确认密码”页面?

时间:2011-11-10 23:15:11

标签: php security passwords

在我正在开发的网站上,我已经对我的所有登录信息进行了排序,它运行正常,包括会话保存。

为了提高用户的安全性和隐私性,我想在用户请求查看敏感页面(例如有活动日志或更改某些设置)时实施某种“确认密码”页面,以进一步防止会议嘻哈。但是,我不知道该怎么做。

我不确定这方面的安全最佳做法,因为这个项目网站对我来说是一个学习曲线,我很感激被教导。

我认为我打算实现的结构可能是这样的: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 :(得分:0)

我只是为这个用户添加一个$ _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
}

有任何帮助吗?

答案 1 :(得分:0)

如果您担心会话劫持,请使用https并仅设置会话cookie https。 要确认密码,请让他们以与登录相同的方式输入密码,并检查以确保哈希与用户表的匹配方式与登录时相同。

我创建了一个名为$ scookie的对象,我用它来定义我想要的会话。

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

session_start();

在上面,当我关注劫持(任何有用户登录的东西)时,我确保$ scookie-> secure设置为true。