- ベストアンサー
セッション変数のセキュリティ
プログラム初心者です セッション変数の安全性について教えてください ログインしているかをセッション変数で判定しています。セッションidは使っていません 質問1 悪意をもったハッカーがセッション変数を取得することはできますか?それともセッション変数はクッキーと違い安全なんでしょうか? 質問2 セッション変数の保持時間は決まっていますか? session_start(); if(!isset($_SESSION['id'])){ header('Location: login.php'); exit(); } よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
【回答1】 [Cookie] ホストに保存されているデータから受け取る。 データ形式は文字列か、それを含む配列にしかなり得ない。 $_GETや$_POSTと同じ。 ホストが勝手に編集することももちろん可能。 [セッション] Cookieで「セッションID」というデータだけをホスト側に渡し、 実際の$_SESSIONのデータはシリアル化されてサーバー側に保存される。 復元時はCookieで送られてきたセッションIDを照合し、 それに対応する有効期限内のシリアルが見つかれば デシリアライズされて$_SESSIONに復元される。 [安全性] 攻撃者に「セッションID」を知られることが無ければ安全。 XSS脆弱性があると http://bakera.jp/glossary/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E8%84%86%E5%BC%B1%E6%80%A7 のようなJavaScriptコードを埋め込まれ、 他人のセッションIDが攻撃者に抜かれてしまうので注意。 また、セッションIDをログイン後にsession_regenerate_id関数で 変更していない場合、セッション固定攻撃の餌食になる。 http://bakera.jp/glossary/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E5%9B%BA%E5%AE%9A%E6%94%BB%E6%92%83 【回答2】 http://pentan.info/php/session_gc.html
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
お礼
回答ありがとうございました みてみます
お礼
回等ありがとうございます session_regenerate_idで変更することにしました