在阅读this和所有相关的问题后,我仍然有一个问题。
我试图用“记住我”功能来实现登录表单。早些时候,我一直在使用一个cookie(只包含一个哈希用户名,没有密码)来验证用户是否已经登录,但我读过这不太安全,因此我决定只使用会话。
在开始的时候一切正常需要:PHP:一种安全的方式来保持登录信息
$expires=isset($_POST['rememberMe'])? time()+(60*60*24*14): 0;
session_set_cookie_params($expires, "/", ".example.com", false, true);
session_start();
但我希望他们能如果“记住我”设置为直接打开页面(如http://example.com/blog)。很明显,我做了一个session_start()
并重定向到登录页面,如果用户没有登录。但是,在这一点上,我不能正确地做session_set_cookie_params()
,因为我不知道他/她是否早先设置了“记住我”或不。如果我仍然把它放入cookie中,它会安全吗?或者我应该修改我的数据库来做到这一点?
还有一件事:安全会话数据(没有密码,再次!),如用户名,权限等两周?
所以你认为在cookie中存储哈希用户名是安全的,对吗? –
我编辑了系统的简要说明。只有散列用户名是非常糟糕的,因为散列总是相同的。你应该生成一个随机密钥。 – xrash