2011-12-20

PHPセッション開始のサンプル

# セッションIDの保存は、クッキーのみを利用する。

ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);


# セッション名を変更する。

session_name('SITENAME');


# 第1引数:セッションクッキーの有効時間(秒数)。0でブラウザを閉じるまで。
# 第2引数:セッションクッキーが有効なパス。供用サーバーで独自ドメインがない場合は、
#      自分が管理するディレクトリ以下に対してのみ、ブラウザからセッションクッキ
#      ーを送信させる。
# 第3引数:セッションクッキーが有効なドメイン。
# 第4引数:HTTPSでのみセッションクッキーを有効とする場合は、true とする。
# 第5引数:セッションクッキーへのアクセスはHTTPのみとし、JavaScriptからのアク
#        セスは許可しない。

session_set_cookie_params(0, '/user/', NULL, false, true);


# セッションを開始する

session_start();


# セッションハイジャック対策
# セッション固定化攻撃対策
# F5連打対策
# 前回セッションIDを再生成した日時と現在日時を比較し、一定期間(例えば20分)経過
# していたら、セッションIDを再生成する。

$_SESSION['lasttime'] = isset($_SESSION['lasttime']) 
                      ? $_SESSION['lasttime'] : 0;
$now = time();
if (($_SESSION['lasttime'] + 20 * 60) < $now) {
    session_regenerate_id(true);
    $_SESSION['lasttime'] = $now;
}

0 件のコメント:

コメントを投稿

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...