- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テーブルデータをSESSIONに保存し、使いまわす)
テーブルデータをSESSIONに保存し、使いまわす
このQ&Aのポイント
- ユーザーが記事を作成、編集、削除できるブログシステムを作成中。
- 現在、ユーザーがログイン成功時にセッションにはユーザーIDのみを保存。
- セッションにユーザーID以外の情報も保存すればデータベースからの取り出しが不要になるが、セキュリティ面から問題があるか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もちろん基本的なセキュリティ対策は当然として、問題ありません。 毎回取得すると分かり切っているようなユーザの基本的な情報、例えばidの他、name,メールアドレス(よく使用するなら),ロール(権限の種類)や所属,ログイン成功時のIP、その他POST送信時のトークン、Referrerとして現在のURLなどを入れたりします。 質問者さまの場合、idやname、dir は適当だと思いますが、記事の方は持ち回るにはデータが大きい割に使用するかどうかも分からないのでセッションに入れるには不適切かと。 こちらはこれまで通り、必要な場面でDBから取得すればよいのではないでしょうか。 また「ユーザ情報をセッションに格納するのはログイン成功時のみ」に限るので、用済みになるパスワードは暗号化されているかどうかにかかわらず不要なので保持することはありません。
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.1
セッションハイジャック http://www.atmarkit.co.jp/ait/articles/0307/09/news001.html 突っ込むデータに対してソルトなどをかけて暗号化しておけば簡単に推測することは できないでしょうが、復号するのも面倒だし、盗まれれば、盗まれたことには 変わりはないし、更新が行われたらセッション情報まで更新してあげなきゃいけないし、 ブラウザ操作による制御も、クリアするタイミングも考えなきゃいけないし、 いちいち考えなきゃいけないことが増えると思いますよ。
質問者
お礼
ご回答、参考リンクありがとうございます。 確かに更新の度にセッション情報も更新をしたりしていたら逆に大変ですね。 この度はご回答いただきありがとうございました。
お礼
ご回答ありがとうございます。 まさしく、私がお聞きしたかったこと、ズバリ!のご回答で非常に助かりました。 毎回取得するような情報はセッションに、 記事は毎回DBから取得でいきたいと思います。 この度はご回答いただきありがとうございました。