我有一个 php 程序,它有登录页面和注销页面。当用户成功登录页面时,它将被重定向到 index.php
当 index.php 被加载时,它会从数据库中获取数据(mySQL。即从用户中选择 *)并填充一些用户数据并以漂亮的表格格式显示它们
Name Phone DOB ... Option
John Doe xxx-xxx-xxxx mm-dd-yy ... [Edit] [Details]...
ETC
并非查询结果中的所有字段都会显示在上表中,只有部分字段会显示。
在选项栏下,有一个名为“详细信息”的选项,单击后,用户将能够看到一些安全信息。
我可以想到两种方法:
加载 index.php 时,我不会从用户调用 Select *(其中 * 将包含一些安全信息),而是调用“Select id fullname, phone, dob from users”。(除非必要,否则不要选择某些东西)。然后,当单击“详细信息”时,我将传递 id 并使用该 id 从 db 检索安全信息。(IMO 这是最安全的方式,但我必须进行额外的查询调用)
加载 index.php 时,我将只从用户中执行 Select *。将查询结果(数组)保存到 Session 中,然后单击“详细信息”时,我将从 Session 中检索数组。这样我就不必进行额外的查询调用,但是我不确定 Session 是否安全。
就安全性而言,哪种方式更好?(如果它们都不是,请告诉我该怎么做)