2014-10-28 47 views
0

准备一个能够登录的简单页面。其中一项功能是能够更改注册时提供的用户数据。我的代码工作如下。如何提高用户数据更改的安全性?我的方法安全吗?

中记录:

if(passwordIsCorrect()){ 

//log in 
$_SESSION['user'] = $email; 

} 

所以我写电子邮件或用户ID会话变量。当用户完成表单并单击使用

$ _SESSION ['user']; 

这是一种安全的方式提交我写更改数据库表中的“用户”搜索相应的行?它能以某种方式得到改善吗?

+0

是的,你会很安全。尽管你可能能够在不同方面提高你的安全性。例如哈希密码:http://www.sitepoint.com/password-hashing-in-php/ – 2014-10-28 12:25:19

+0

我没有看到任何安全威胁......基本上,你只是更新会话变量,这没有任何关系与用户数据左右... – 2014-10-28 12:26:27

+0

我没有想到在PHP中的加密密码,这很简单。我还在学习。多谢你们。 – user3364397 2014-10-28 12:33:56

回答

0

这很好,假设你的电子邮件消毒或从数据库中提取。

$ _SESSION数组存储在服务器上,而不是客户机上:将其视为链接到用户浏览器会话的服务器上的临时数组。

电子邮件不会与每个请求来回传递,只有会话ID。

而不是电子邮件,我会使用userID - 不是为了安全,只是为了方便。用户可能会更改他们的配置文件来修改他们的电子邮件,并且您的用户ID很可能是数据库中的索引,所以速度会稍微快一点 - 这只会使性能提高很小,但由于您在每次请求时都会这样做,它会加起来。

+0

这就是我一直在寻找的东西。谢谢。 – user3364397 2014-10-28 12:35:57

0

是的,它是安全的,虽然你可以保留用户ID,因为电子邮件可以改变。

我觉得你的问题是与此相关的一个:php storing user id in session?

+0

对不起。谢谢您的回复。 – user3364397 2014-10-28 12:35:21

相关问题