• ベストアンサー

セッション変数のセキュリティ

プログラム初心者です セッション変数の安全性について教えてください ログインしているかをセッション変数で判定しています。セッションidは使っていません 質問1 悪意をもったハッカーがセッション変数を取得することはできますか?それともセッション変数はクッキーと違い安全なんでしょうか? 質問2 セッション変数の保持時間は決まっていますか? session_start(); if(!isset($_SESSION['id'])){ header('Location: login.php'); exit(); } よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.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

flash0
質問者

お礼

回等ありがとうございます session_regenerate_idで変更することにしました

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1
flash0
質問者

お礼

回答ありがとうございました みてみます

関連するQ&A

専門家に質問してみよう