• ベストアンサー

「セッション管理用のクッキーに secure 属性をつける」についてで

「セッション管理用のクッキーに secure 属性をつける」についてですが、 具体的には、 <?php session_start(); session_regenerate_id(TRUE); ?> とあった時に、どのようにコードを加えれば良いのでしょうか? ご教授、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

HTTPSでのサイト作りですか? 「PHP https session」でコードを具具ってみてください。

参考URL:
http://bba-ltom.blogspot.com/2008/07/php.html
mitan3354
質問者

お礼

色々調べました。 setcookie("CHKID", $CID,0,"","",TRUE); セッションスタート時のクッキーの設定について分かりませんでした。 クッキーnameが何なのかが分からず、どう書いて良いの悩んでいたのですが、 print_r($_COOKIE); で分かりました。 回答、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 困ってます。phpセッションについて

    phpセッションについて教えてください。 既にwebサーバで動いているシステムがあります。 改修する必要があるため、パソコンの仮想サーバ(XAMPP)で動かした所、セッションに関わる部分がうまくいきません。 ●保存してる箇所 session_start(); session_regenerate_id( TRUE ); $_SESSION['xxx'] = $xxx; ●呼び出している箇所 session_start(); session_regenerate_id( TRUE ); if ( !isset( $_SESSION['xxx']) ) { //←ココでひっかかります //終了するための処理 exit; } $xxx = $_SESSION['xxx']; ************** 設定に関する部分です。 ●「.htaccess」の設定は以下のようにしています。 php_flag session.use_cookies On php_value session.cookie_lifetime 0 php_flag session.use_trans_sid Off php_value session.gc_maxlifetime 3600 php_value session.save_path 'C:temp' 'C:temp'に保存されたデータはありますので、書き出しはうまくいってるようです。 呼び出しがうまくいってません。 ソースの session_start(); session_regenerate_id( TRUE ); の直後に var_dump($_SESSION['xxx']); で値を参照するとNULLです。 ●「php.ini」のセッションの箇所は以下のようになっています。 session.save_handler = files よろしくお願いします。

    • ベストアンサー
    • PHP
  • セッションハイジャック(セッション固定化)の対策は必要?

    ・php.ini で session.use_only_cookies = 1 ・フレームワークで XSS 対策(自動エスケープ) を行っている場合、セッションハイジャック(セッション固定化)の 可能性は、ないと考えてよろしいでしょうか? というのも、session_regenerate_id() は、セッションハイジャックの 可能性を、かなり減らせると思うのですが、これを利用すると、 レスポンスが来る前に、ユーザが送信ボタンを再度クリックしたり リロードした場合に、セッションが切れてしまうことが よくあるからです。 そのため、1/5の確立で session_regenerate_id() を起動、 if (mt_rand(1, 5) === 1) {   session_regenerate_id(TRUE); } としてみたのですが、抜本的な対策とは思えません・・・。 XSS対策が完璧で、セッションはクッキーのみの場合、 他にどのような対策が必要でしょうか?ご教示ください。

    • ベストアンサー
    • PHP
  • PHPセッションIDの変更

    お世話になります。 phpでのセッションIDの変更の処理(セッションの中身も初期化する)がうまくいかず困っております。 以下のようなコードでセッションの管理をしているのですが。。 現象としては、最初に発行したセッションIDを保持したクッキーが削除されていない。 下記のコードの中の2度目にsession_start()を実行している 部分の後のセッションIDを見ると 新しいIDになっているがブラウザのクッキーのセッションIDは 古いIDのまま。 という現状です。 どなたか、原因が判る方、ご教示頂ければ幸いです。 宜しくお願いします。 ------------------------------ session_start(); //セッションクッキーを破棄・ if (isset($_COOKIE[session_name()])) {   setcookie(session_name(), '',time()-42000, '/'); } //セッションを完全に破棄・ if('' != ($myid = session_id())){   $_SESSION = array(); //セッション変数を初期化・   session_destroy(); } session_id(md5(uniqid(rand(), true))); //新しいセッションID session_start(); $_SESSION['userid'] = 'hoge'; -------------------------------------------------

    • 締切済み
    • PHP
  • PHP SESSION 設定について

    PHP(レンタルサーバー:5.3.6)(ローカル:5.3.26)を使用しています。 簡単なログインフォームを作っていました。 ローカルでテスト運用したところ、問題なく動作していたのでレンタルサーバーにアップロードしたところ、SESSIONが動いていない(?継承していない?)ことに気づきました。 そこでphpinfoを確認すると レンタルサーバーは、 session.cookie_httponly=1(On) session.cookie_secure=1(On) になっていました。XSS攻撃に全部ではないけどレンタルサーバーの設定だと有効だということなので、ローカルもレンタルサーバーの設定に合わせたいと思っています。 ※設定をoffにすると問題なく動作します。 sample2.phpで、「$_SESSION['sample_title']」が表示されなくなってしまいました。 どのようにすれば、sessionが正しく動作するかご教授お願いいたします。 抜粋スクリプト ■sample1.php session_start(); session_regenerate_id(TRUE); $_SESSION["sample_title"] = "PHPのSESSION"; //セッション登録 echo "$_SESSION['sample_title']に代入した値は「<?php echo $_SESSION['sample_title'] ?>」です。"; echo "<a href = 'sample2.php'>次のページ</a>"; ■sample2.php session_start(); session_regenerate_id(TRUE); echo "受け取ったセッション変数の値は「".$_SESSION['sample_title'] ."」です。";

    • ベストアンサー
    • PHP
  • セッションIDがクッキーに渡るタイミングについて

    セッションIDが、クライアントPCのクッキーに書き込まれるタイミングについて、 教えてください ▼セッションを開始したとき ・session_start(); ▼セッション変数に、何かを格納したとき ・$_SESSION["HOGE"] =○○ ▼PHPの処理が終了したとき ▼セッションが終了したとき ▼それ以外

    • ベストアンサー
    • PHP
  • PerlモジュールのCGI::Sessionでセッション管理

    PerlモジュールのCGI::Sessionでセッション管理をしようとしています。 具体的なコードは %cookie=raw_fetch CGI::Cookie; $S_id=$cookie{'S_id'};#クッキーに保存されたセッションIDを取得 $session = new CGI::Session("driver:MySQL", "$S_id", {Handle=>$dbh}); その後 $Ses_id=$session->id(); とすると本来ならばクッキーに保存された既存のセッションID($S_id)が$Ses_idに入ると思うのですが、$Ses_idには新しいセッションIDが入ってしまいます。 そこで疑問なのですが (1)$S_idにクッキーに保存されたセッションIDを指定すると既存のセッションをオープンするのではないのでしょうか? (2)$Ses_id=$session->id();にはなぜ新しいセッションIDが入ってしまうのでしょうか? 2点の質問ですが、どうか宜しく教えてくださいまし。

  • セッションの仕組み

    php初心者です セッションの仕組みを教えてください 質問1 セッションidとセッションクッキーは同じものですか? 質問2 セッションidやセッションクッキーはデフォルトでは、ブラウザを閉じた時に削除されますか? 質問3 レンタルサーバーのphp.iniを調べてみたところ 保存場所がsession.save_path no valueでした。この場合、訪問者のパソコンにクッキーが保存されてしまうのでしょうか?サーバーに保存する方法はありますか? 質問3 session_start();でセッションを開始したときセッションidが自動で付けられるのはわかりましたが、 セッションid(MD5で作られた数字)の使い道がわかりません 質問4 セッションidはどこに利用すればいいのでしょうか? session_start(); session_id(); //このセッションidの利用方法がわかりません $_SESSION['id'] = $_POST['id']; よろしくお願いします

    • ベストアンサー
    • PHP
  • セッションとクッキーの関わりについて

    いつもお世話になりますm( __ __ )m 質問の前に前提条件としてセッションによるログインサイトなどは、以下のようなやり取りを行っていると認識しています。 1. サーバーからクライアントにセッション ID を発行する 2. クライアントのクッキーにセッション ID が保存される 3. 以降、クライアントがサーバーにアクセスするとクッキーに保存されているセッション ID が一緒にサーバー側に送信され、サーバー側で保存しているセッションデータと関連つける。 ここまで間違っていたらご指摘ください。 以下、質問です。 上記の仕組みを PHP などを用いて既存のセッション関数を使わず自作するとした場合、以下のシーケンスで同等と考えてよろしいでしょうか? 1. サーバー側で乱数などを用いてセッション ID を独自に生成する 2. Set_Cookie 関数などでクライアントのクッキーにセッション ID を保存する。 3. 以降、クライアントのクッキーからセッション ID を取得し、サーバー側でその値を元に DB などから値を取り出す。 私には前者と後者が全く同じ処理に見えるのですが、違うのでしょうか。それとも同じなのでしょうか。と言ったところが聞きたいと考えています。 以上です。 よろしくご教授くださいm( __ __ )m

  • PHP cookieの値が更新されないときがある

    setcookie()を使ってcookieの値を更新したのですが、反映されない時があります。 クッキーに自作のセッションIDみたいなIDを保管して、そのIDを訪れる度に更新しようとしています。セッションIDなら session_regenerate_id();を使うと、更新されますよね?それと同じように自作IDに関しても、更新したいと思っています。 クッキーがうまく更新されていない時もsetcookie()の戻り値はtrue (1)です。どうしたら、session_regenerate_id();みたいにIDを更新して、反映させることができますか?

    • ベストアンサー
    • PHP
  • セッションについて

    PHPのセッションについてご教授ください。 session_start()の前でセッション名の変更を行うと、セッションidが受け渡されず、次ページが新規セッションとなってしまいます。クッキーを使った解決法を探してます。 セッション名を変更した場合、どのように解決すればよいでしょうか。初心者なのですが、一生懸命勉強中なので、宜しくお願いします。 開発環境: apache2.2 php 5.2 ページ1ソース <?php function main(){ session_name('member'); <= この行をコメントアウトすると、受け渡しできます session_start(); $_SESSION['test'] = 'test'; } main(); ?> <a href="sesstest2.php">test</a> ページ2ソース <?php session_start(); echo $_SESSION['test']; ?>

    • ベストアンサー
    • PHP