我想知道在 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/