Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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_Laravel - Fatal编程技术网

Php 会话或数据库查找?

Php 会话或数据库查找?,php,mysql,laravel,Php,Mysql,Laravel,我正在用laravel运行一个PHP应用程序。我应该每次都使用sql查找用户信息,还是在查找一次后将其存储在会话/缓存中并从中提取?除非用户更改信息,否则信息不会经常更改,所以我想从效率的角度来看待它。我个人使用数据库的方式。有些人不知道这一点,但实际上会话是公开的。因此,该会话中的任何数据都可能因会话黑客攻击而变红 这在我们的知识中并不常见,但确实如此。对于数据库来说,按id查找用户并不难 出于安全原因,请坚持使用数据库 数据库增益大于cpu时间损失如果您谈论的是当前登录的用户信息,则将其留给

我正在用laravel运行一个PHP应用程序。我应该每次都使用sql查找用户信息,还是在查找一次后将其存储在会话/缓存中并从中提取?除非用户更改信息,否则信息不会经常更改,所以我想从效率的角度来看待它。

我个人使用数据库的方式。有些人不知道这一点,但实际上会话是公开的。因此,该会话中的任何数据都可能因会话黑客攻击而变红

这在我们的知识中并不常见,但确实如此。对于数据库来说,按id查找用户并不难

出于安全原因,请坚持使用数据库


数据库增益大于cpu时间损失

如果您谈论的是当前登录的用户信息,则将其留给Laravel。根据您的配置,Laravel将保留数据,并允许您使用统一的API轻松访问数据

身份验证配置文件位于 app/config/auth.php,其中包含几个文档化的选项 用于调整身份验证设施的行为

默认情况下,Laravel在应用程序/模型中包含用户模型 可与默认雄辩身份验证一起使用的目录 驾驶员如果您的应用程序未使用雄辩,您可以使用 使用Laravel查询生成器的数据库身份验证驱动程序

要检索用户/用户数据,您可以使用以下内容:

$user = Auth::user();
$userEmail = Auth::user()->email;

Laravel将使用会话来存储用户id,原始数据将存储在数据库中,因此您不必担心用户数据。请检查文档,让拉威尔来做。

很遗憾,您弄错了,先生,我希望是这样。会话应该是红色的。这种情况发生得不多,但确实发生了。这也是您不在会话中发布密码的原因之一。原因会话易受攻击。只要禁用session.use_trans_id并启用session.cookie_httponly和session.use_only_cookie,就可以劫持一个人的会话。此外,现代框架使用加密的cookies,所以即使是窃听你流量的人也无法获得任何有用的信息——就像许多其他人一样,你们都假设服务器是健全的。话虽如此,数据库提供了一种更安全的获取数据的方式。同意因为最后,这是他的问题。CPU时间的损失对于安全性来说是可以接受的。同意吗?@Matt考虑到很多人在数据库中存储会话数据,你甚至没有什么意义。您可以通过SQL注入公开数据库,这比将会话配置为可公开访问要容易得多。这就是我们加密和PDO的原因。会话是数据存储,数据存储吸引黑客。不要仅仅假设会话是安全的。你的用户数据就是你在网站上的生动形象。尽你所能保护它。如果你不相信,那不是我的问题。继续并使用您的会话进行所有操作。假设您仅尝试查找当前登录用户的用户信息。会议会很好。除非您还想四处查询其他用户详细信息,否则会话是个坏主意,我会坚持使用持久的存储查找。