少年よ大志を抱け: PHP: セッションにセキュリティ対策する
コメントの書き方がよくわからなかったのでここで。
/* * セッションを完全に削除 */ function strict_session_destroy(){ // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // HTTP <-> HTTPS 間でセッションの受渡し用Cookieも削除 if (isset($_COOKIE[STRICT_SESSION_ENCRYPT_NAME])) { setcookie(STRICT_SESSION_ENCRYPT_NAME, '', time()-42000, '/'); } // 最終的に、セッションを破壊する session_destroy(); }少年よ大志を抱け: PHP: セッションにセキュリティ対策する
setcookie() でセッションのクッキーに使用しているパスとドメインを指定しないと、ちゃんと消えない。
ところでこのブログにはパーマネントリンクとトラバはないのか?
追記 2008-11-30
じゃあどうしたらいいんだ、ってのを書かないとフェアじゃねーって意見があるかもしれないので書く。
setcookie( session_name() // 名前 ,'' // 値 ,time()-42000 // 有効期限 ,ini_get('session.cookie_path') // パス(URL) ,ini_get('session.cookie_domain') // ドメイン );
追記 2008-11-30
もしかしたら ini_get() を使えない環境もあったり、ってことで。
$cookie_params = session_get_cookie_params(); setcookie( session_name() // 名前 ,'' // 値 ,time()-42000 // 有効期限 ,$cookie_params['path'] // パス(URL) ,$cookie_params['domain'] // ドメイン );