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

プログラム初心者です

セッション変数の安全性について教えてください

ログインしているかをセッション変数で判定しています。セッションidは使っていません

質問1
悪意をもったハッカーがセッション変数を取得することはできますか?それともセッション変数はクッキーと違い安全なんでしょうか?

質問2
セッション変数の保持時間は決まっていますか?

session_start();
if(!isset($_SESSION['id'])){
header('Location: login.php');
exit();
}

よろしくお願いします

A 回答 (2件)

【回答1】



[Cookie]
ホストに保存されているデータから受け取る。
データ形式は文字列か、それを含む配列にしかなり得ない。
$_GETや$_POSTと同じ。
ホストが勝手に編集することももちろん可能。

[セッション]
Cookieで「セッションID」というデータだけをホスト側に渡し、
実際の$_SESSIONのデータはシリアル化されてサーバー側に保存される。
復元時はCookieで送られてきたセッションIDを照合し、
それに対応する有効期限内のシリアルが見つかれば
デシリアライズされて$_SESSIONに復元される。

[安全性]
攻撃者に「セッションID」を知られることが無ければ安全。
XSS脆弱性があると
http://bakera.jp/glossary/%E3%82%AF%E3%83%AD%E3% …
のようなJavaScriptコードを埋め込まれ、
他人のセッションIDが攻撃者に抜かれてしまうので注意。
また、セッションIDをログイン後にsession_regenerate_id関数で
変更していない場合、セッション固定攻撃の餌食になる。
http://bakera.jp/glossary/%E3%82%BB%E3%83%83%E3% …


【回答2】

http://pentan.info/php/session_gc.html
    • good
    • 1
この回答へのお礼

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

お礼日時:2013/10/10 19:51

セッションハイジャック



https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%83 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/10 19:52

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