使用会话记录用户

时间:2016-02-06 21:03:51

标签: php session

这个问题可能看起来有点愚蠢,但我真的想知道我做的是对还是错。我有我的这个网站确实要求用户登录。如果用户想要登录订购某些内容,请取决于用户只是想浏览网站。现在,我正在做的是,每当用户登录我进行用户的会话而不是cookie。我在会话中存储用户的姓名,电子邮件,我将这些会话用作如果有人登录则检查机制。现在我的问题如下:

1)会话是否是进行所有身份验证的安全机制?

2)我有一个名为 user_profile 的页面,其中显示了用户的个人资料,例如名称地址等。我正在使用电子邮件会话变量来检查来自数据库的相应电子邮件,然后将其显示在 user_profile 页面上。这是正确的做法,还是应该将电子邮件作为传递从其他页面发布方法?

注意:

1。我不想使用任何cookies。所以请不要建议我暂时存储cookie。

2. 我已经使用预处理语句来确保我的查询是sql注入证明(如果不是100%仍然不太容易sql注入)

2 个答案:

答案 0 :(得分:1)

您可能会有更好的运气和更安全的存储会话,而不是电子邮件和用户名。

然后,您可以根据用户名和电子邮件将此唯一哈希存储在数据库(或其他某种形式的存储)中,从而在发生某种劫持时保护您的请求免受潜在数据泄漏。

以下内容可行:

$sessionId = hash('sha256', $username . $email . $timestamp . $salt);

答案 1 :(得分:0)

好吧,会议可能被劫持;所以它不是100%安全的。但是,这是你无法阻止的;人们总是成为网络钓鱼网站的受害者。在较轻松的音符;您可以在会话中存储用户的电子邮件和密码,然后每次在站点的安全部分进行SQL查询,如果电子邮件和密码在数据库中不匹配,则可以运行session_destroy( );命令并杀死会话。 (而这又会重定向到登录页面)