• 締切済み

cookieoffとセッション管理について

セションを使ったメールフォーム(入力画面→確認画面→メール送信→完了画面の4ファイル)を利用しています。 毎画面を表示させる直前で、セッションに保持している値を呼び出す設計です。 最近、セッション管理をcookieのみにした方がより安全だというサイトを見て、試しに今のメールフォームでブラウザ設定をcookieブロックにして試してみました。 ================================== ブラウザ  cookieブロック PHPの設定  session.use_cookies On On  session.use_only_cookies Off ================================== 予想では、cookieをブロックしているが、それ以外の手法も認めているため、URLの後ろに「.php?hogehoge~」と表示されると思っていたのですが何も表示されません。 そしてメールフォームも問題なく機能してしまいました。 ブラウザ側のcookie設定は「教えて!goo」で何度も再ログインが表示されたことから問題ないと思います。 個人的に原因かもと思っているのは ○メールフォームがローカルの状態で実験しているから ○メールフォームがSSL通信だから(でもローカル用なので偽の証明です;) どなたかどうしてなのか教えてください。お願いします。

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

メールフォームは通常post methodで送信するように作りますので、 input type="hidden" 要素で、session名とidを埋め込んでいるのではありませんか? プログラム側で、直接session_name()やsession_id()を取得して埋め込んでいる場合は session.use_only_cookies設定には関係なく送信されます。 post通信なので、urlには表示されません。 確認画面出力部分のphpソースやその出力htmlソースをご確認下さい。

noname#102084
質問者

補足

回答ありがとうございます。 たしかにPOST送信していますが、意図的にhiddenでの埋め込みをなくして作りましたので、その可能性はないと思います。 >session_name()やsession_id() 埋め込んでおりません。 PHPサイトによると、セッションIDは ・Cookies ・URLパラメータ のどちらかで管理する必要がありますとのこと。 前者の「Cookies」をブラウザ側でブロックしたのですが、URLパラメータもなくセッションが継続されるのが理解できないのです;

関連するQ&A