Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用户登录&;会话:安全与否_Php_Mysql_Session_Login - Fatal编程技术网

Php 用户登录&;会话:安全与否

Php 用户登录&;会话:安全与否,php,mysql,session,login,Php,Mysql,Session,Login,数据库表:登录信息 -------------------------------------- | login | passwd | company | -------------------------------------- |company1 | passmd5 | company1 | -------------------------------------- |company2 | passmd5 | company2 | ------

数据库表:登录信息

--------------------------------------
| login      |  passwd    |  company |
--------------------------------------
|company1    |  passmd5   | company1 |
--------------------------------------
|company2    |  passmd5   | company2 |
--------------------------------------
|company3    |  passmd5   | company3 |
--------------------------------------
登录名匹配后,登录名和公司名将保存在会话变量中

$_SESSION['SESS_MEMBER_ID'] = $log['login']; //where $log is the mysql_fetch_assoc result array
$_SESSION['log_company_id'] = $log['company'];
然后使用会话变量中存储的公司名称,从公司特定的数据库加载公司详细信息。 我不依赖cookies来存储这些信息。
这种方法安全吗?我应该做点别的吗?我应该知道的任何其他安全措施?

不是将loginid存储在变量中,而是“假设”您可能希望将会话作为记录存储在数据库中的同一个人。然后在会话变量中具有该记录的id


通过这种方式,您可以将用户的IP地址存储在数据库中,当您检查会话时,您可以对照数据库中的会话检查IP地址-这将消除会话劫持并增加更多安全性。

而不是将loginid存储在变量中,只是“假设”您可能希望将会话作为记录存储在数据库中的同一个人。然后在会话变量中具有该记录的id


这样,你可以将用户的IP地址存储在数据库中,当你检查会话时,你可以对照数据库中的会话检查IP地址-这将消除会话劫持并增加安全性。

@RobertPitt:我不明白。别担心,我误读了你的帖子,这是完成登录系统和用户管理的正常方式,尽管有一些事情需要注意,例如会话劫持。Google it:)@Gumbo:只使用会话变量来检查登录状态。这是一个好方法,但如果您更注重安全,您可以使用加密值。@JapanPro,您实际上不需要使用摘录值,如果有黑客可以访问您的会话文件或编写服务器端文件,那么您就不必担心了。@RobertPitt:我不明白。不用担心,我误读了您的帖子,这是完成登录系统和用户管理的正常方式,尽管有一些事情需要注意,例如会话劫持。Google it:)@Gumbo:只使用会话变量来检查登录状态。这是一个好方法,但如果你更注重安全,你可以使用加密值。@JapanPro,你真的不需要使用摘录值,如果他们是黑客,可以访问你的会话文件或编写服务器端,那你就不用担心了。