PHPで作られたアプリケーションで、クッキーから情報を取得している箇所があり、そこではあり得ないハズの”deleted“という値が設定されていた。 調べてみると、Cookie削除時のPHPの仕様によるものだった。 アプリ側では、よくあるように次のようにしてCookie を削除していた。 setcookie ( KEY, “”, time()-3600, “/” ); このクッキーを削除する際、PHPでは、内部的には値を deleted に設定し、有効期限を365日+1 秒前に設定する 再現手順 クッキーの用途的に、以下のような手順を踏むと “deleted” な値を取得できる。 ログイン 別タブでログイン後のページを開く クライアントPCの時刻を1年以上昔に設定 片方のタブでログアウトを実行 クッキーの値が “deleted” に設定される ログアウトしていないタブで、ログイン後の画面に遷移 —– 実装の確認 ext/standard/head.c の setCookie 関数の実装から if (value && value_len == 0) { /* * MSIE doesn’t delete a cookie when you set it to a null valueContinue reading “PHP:Cookieを削除すると値をdeletedに設定”