テーブルデータをSESSIONに保存し、使いまわす
お世話になります。
現在、ユーザーが記事を作成、編集、削除できるブログシステムを作成しています。
MYSQLのデータベーステーブルには以下の3つを用意しています。
・usersテーブル:ユーザー名(name)、パスワード等(pw)、記事保存先ディレクトリ(dir)等のユーザ情報
・articleテーブル:ブログ記事タイトルや本文等の情報
・imagesテーブル:ブログ記事に使用している画像情報
ここで質問があります。
現在ユーザーがログイン成功時にセッションにはユーザーIDのみを
$_SESSION["id"]として保存しています。
そして、記事投稿処理時や、記事編集処理時など、各場面で必要になった情報はそのときselectを使ってテーブルから毎回取り出しています。
しかし、こんなことをしなくても、ユーザーがログイン成功時に、セッションにユーザーID以外の情報も
保存しておけば、以後データベースから取り出す必要がなくなり便利かと思うのですが、セキュリティ面などからこのようなやり方はNGなのでしょうか?
1,まったく問題ないのか?
2,パスワード等の重要データはNGなのか?
3,ユーザーidのみにしておくべきなのか?
問題がある場合、その理由も教えていただけるとありがたいです。
例)ユーザーログイン時に、
$_SESSION["id"]=ユーザーID格納。
$_SESSION["name"]=ユーザー名を格納。
$_SESSION["dir"]=記事保存先ディレクトリを格納。
$_SESSION["article"]=ログインユーザーの記事情報を格納。
お分かりの方、教えていただけたら幸いです。
よろしくお願い致します。
お礼
回答ありがとうございます。 そうですよね。 単純なミスには思えません。 普通考えてみれば、これだけ大掛かりなシステムなのにそんな単純ミスがまかりとおおるくらいのチェックで導入されているとは考えづらいからです。 と考えると、基本的なシステム設計の問題では、と素人の私は思ってしまうのですが。