在Session Array中直接保存PHP数据库值是否安全?

时间:2015-04-15 17:02:47

标签: php mysql arrays session pdo

我想知道在使用PHP在mySQL上进行数据库操作时,在Session数组中保存所有数据库值是非常安全的,如下所示

$query = "select * from `users` where `mails` = ? and passx= ? ";
$result = DB::instance()->prepare($query)>execute
             (array($m,$s))->fetchAll();
foreach($result as $row){
   $user[] = $row;
   $_SESSION['user'] = $user;
}

我担心会话阵列中的所有数据库列名都可用。如果有任何其他方法,请告诉我。

2 个答案:

答案 0 :(得分:1)

是的,$ _SESSION数组是私有的,除非将php配置为在公共可访问的位置保存会话文件或服务器上存在安全漏洞,否则永远不会向用户显示。但是,会话可能会被用户窃取,其他人可以使用某些方法登录。

了解如何防止会话固定here

还相关:Where is data stored in a session?

顺便说一句,您可以使用reset()而不是foreach()来返回数组中的第一个键。

答案 1 :(得分:0)

简而言之,如果你不运行var_dumping $_SESSION,或者管理从$_SESSION分配的数据管理不善,那么$_SESSION的内容无法被拦截客户端 - 侧。它只存储在服务器上。

即使会话被劫持(其中有一系列问题和疑虑),这并不意味着$_SESSION的内容已完全暴露。