php - 将 PHP 数据库值直接保存在 session 数组中是否安全?

标签 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;
}

恐怕所有数据库列名都可以在 session 数组中使用。如果有任何其他方法,请告诉我。

最佳答案

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

阅读如何防止 session 固定 here

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

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

关于php - 将 PHP 数据库值直接保存在 session 数组中是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656391/

相关文章:

MySQL 搜索查询,按最佳匹配对结果进行排序

javascript - 如何使用过滤器将两个数组中的 JSON 对象推送到一个新数组中?

python - 如何有效地连接 numpy 中的许多 arange 调用?

php - 如何将按钮添加到侧边栏小部件?

php - 验证 ImageMagick 安装

php - 使用 PHP 转换 SQL 时间?

mysql - 使用 LIMIT 在 MySQL 中查找结果总数的 Doctrine 查询

MySQL : Finding empty time blocks between two dates and times?

php - 较大文件的 View 数据导出失败

c - 从 c 数组索引问题中的串行端口读取该数据