ログインページとログアウトページを持つphpプログラムがあります。ユーザーがページに正常にログインすると、index.php にリダイレクトされます。
index.php が読み込まれると、データベースからデータが取得され (mySQL、つまり Select * from users) 、ユーザー データの一部が取り込まれ、適切なテーブル形式で表示されます。
Name Phone DOB ... Option
John Doe xxx-xxx-xxxx mm-dd-yy ... [Edit] [Details]...
等
クエリ結果のすべてのフィールドが上のテーブルに表示されるわけではなく、一部のフィールドのみが表示されます。
[オプション] 列の下に、[詳細] というオプションがあり、クリックすると、ユーザーはセキュリティで保護された情報を確認できます。
私はそれを行う2つの方法を考えることができます:
index.php が読み込まれると、Select * from users を呼び出す代わりに (* セキュリティ情報が含まれます)、"Select id fullname, phone, dob from users" を呼び出します。(必要でない限り、何かを選択しないでください)。次に、[詳細] をクリックすると、ID が渡され、その ID を使用してデータベースから安全な情報が取得されます。(IMO これが最も安全な方法ですが、追加のクエリ呼び出しを行う必要があります)
index.php がロードされたら、Select * from users を実行します。クエリ結果 (配列) をセッションに保存し、[詳細] をクリックすると、セッションから配列を取得するだけです。この方法では、追加のクエリ呼び出しを行う必要はありませんが、Session が安全かどうかはわかりません。
セキュリティ的にはどちらが良いですか?(どれもそうでない場合は、どうすればよいか教えてください)