アプリ版:「スタンプのみでお礼する」機能のリリースについて

ユーザーログイン機能について、取得した全てのDBユーザーテーブル情報を、セッション変数$_SESSION['★★']に格納しているサンプルコードがありました(2つ程見かけました)

■質問
・セッション変数にパスワードを保持しても良いのでしょうか?
・生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので、そういう意味ではセッション変数には何を保存しても良いのでしょうか? 単に保存先が、セッション変数かDBかの違いでしかない?
・あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの、のみ保存して、その都度DBに問い合わせた方が良いのでしょうか? でも、これって非効率的?

A 回答 (2件)

あまりよいやり方とは思えません。



>生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので、そういう意味ではセッション変数には何を保存しても良いのでしょうか? 単に保存先が、セッション変数かDBかの違いでしかない?

いいえ。PHPを利用するサーバーでは、セッション変数を外部から操作しようとする変数汚染攻撃と呼ばれるものが存在します。コーディングに注意していないと、この種の攻撃によりセッション変数へのアクセスを許す危険があります。ですから、

>あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの、のみ保存して、その都度DBに問い合わせた方が良いのでしょうか?
 ↑
これが正しい考え方だと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございましたー

お礼日時:2012/11/23 17:58

>セッション変数にパスワードを保持しても良いのでしょうか?あのーーーーーー。

もしかしてDBの方にもパスワードそのまま保存しているのか?
それセキュリティーを考えるなら絶対にやっちゃ駄目な手法だぞ。
DBの方にはパスワード文字列から生成したハッシュを保存するんだよ。
でもちろんセッション側もパスワードのまま保持なんてしない。ハッシュを保持する。

>生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので
それの心配するならワンタイムセッションくらい使えよ。

>あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの
じゃあパスワードのハッシュも一応セキュリティーに関係するけどそうすると今度は
ログインユーザに対してどうやって確認処理をする?
    • good
    • 0
この回答へのお礼

回答ありがとうございましたー

お礼日時:2012/11/23 17:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!