2010-12-03 13 views
2

私は、データベースを使ってセッション変数を保存することは、それらをクッキーに入れるよりもずっと安全だと読んだことがあります。CodeIgniterでセッション変数の暗号化を手動で有効にする必要がありますか?

CIセッションライブラリを使用し、Cookieではなくデータベースに保存するように設定した場合、セッションID変数は自動的に暗号化されますか?

セッション変数をデータベースに保存する際には暗号化を使用することをお勧めしますが、暗号化を実行するためには別のオプションがあるかどうかはわかりません。

また、暗号化ステップを自分で有効にする必要がある場合は、キーをどこに設定しますか?それは同じ暗号化ヘルパークラスの一部ですか?

答えて

5

いいえ、CodeIgniterは、MySQLなどのDBやクッキーを使用しているクライアント側であれ、セッションデータを自動的に暗号化しません。

system/application/config/config.phpの$config['sess_encrypt_cookie'] = TRUEを設定すると、Cookieの暗号化が有効になります。 $config['sess_use_database'] = TRUEを使用すると、クッキー自体(クライアント側に保存されている)は暗号化されますが、実際のセッション変数(DBに格納されます)は暗号化されません。

これは、実際のセッション変数にクッキーを使用して保存するときと同じように、サーバー側のDBに格納されているデータを暗号化することは重要ではないと思います。なぜなら、ユーザーはDBのセッション変数を見たり、 。

暗号化キーは、暗号化を機能させるために$config['encryption_key']を使用して設定する必要があります。

+0

"サーバー側のDBに格納されたデータを暗号化することは重要ではありません"という理由で、データベースのパスワードをハッシュするのはなぜですか?アプリケーションが、機密データをクレジットカード番号などのデータベースに格納されたセッションに格納すると仮定します。私は、それがサーバー側またはクライアント側に格納されているかどうかにかかわらず、暗号化されたデータをセッションに格納することは回避すべきだと思います。 – SaidbakR

関連する問題