在我正在开发的网站上,我已经对我的所有登录信息进行了排序,它运行正常,包括会话保存。
为了提高用户的安全性和隐私性,我想在用户请求查看敏感页面(例如有活动日志或更改某些设置)时实施某种“确认密码”页面,以进一步防止会议嘻哈。但是,我不知道该怎么做。
我不确定这方面的安全最佳做法,因为这个项目网站对我来说是一个学习曲线,我很感激被教导。
我认为我打算实现的结构可能是这样的: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
据我所知,正确地做到这一点,我需要做到这一点,以便一旦用户离开历史记录日志,他们就不再有权查看它。
如果有人可以提供一些如何做到这一点的提示,我将不胜感激。我试图搜索一些教程,但找不到任何教程(我完全有可能选择不好的搜索术语),如果有人甚至可以提供教程的链接,那么也会非常感激。
谢谢,乔丹。
答案 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。