将密码存储在会话变量中是否安全?
例如,用法将采用提交给自己的形式。
例如,更改分类页面,用户首先输入密码,然后如果pass = ok,则显示表单以更改分类。全部在同一个php页面上。
但是每当在php页面的“更改”部分上传图片时,表单必须再次提交给自己。
我是否应该使用商店会话密码来验证用户实际上是用户,并确保其安全?
换句话说,存储这样的东西是否安全:
if($pass==$row['password']){ // If password was correct
$_SESSION['pass_ok']='1';
}
由于
答案 0 :(得分:10)
Camran,你要做的是维护php会话的标准方法。实际上,您并未在会话中存储密码,而只是存储此特定用户已登录的信息。 $ _SESSION [ 'pass_ok'] = '1';
在每个页面上你只需要做一个session_start()并检查这个会话是否已经设置为1,如果是,他们会假设他被记录并继续进行,否则重定向到登录页面。
如果有人获得会话ID,那么他们肯定可以访问用户会话。你可以做一些事情来使它更安全。
答案 1 :(得分:1)
使用预先构建的身份验证系统。这是你最安全的选择,因为他们已经(或者应该)已经考虑过所有事情(安全问题)。
答案 2 :(得分:0)
我做的是,
答案 3 :(得分:-2)
我会反对它。如果有人登录并将会话ID复制下来,理论上可以登录任何页面。我建议你在每次刷新页面时检查密码是否正常,因为这样会更安全。
此外,始终将密码存储在数据库中,或者更好的是,使用盐进行散列。