プロが教える店舗&オフィスのセキュリティ対策術

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'] ."」です。";

A 回答 (1件)

RTFM.


http://jp2.php.net/manual/ja/session.configurati …

session.cookie_secure が 1(On) ということは、SSL通信(https)でないとCookieが送られません。

>ローカルもレンタルサーバーの設定に合わせたいと思っています。

ローカルのサーバでhttpsを試すと言うことですか?それ以前にレンタルサーバではhttpsは(利用可能だとは思いますが)どういうURLでアクセスすればいいかなどは理解されていますか(普通は共用SSLだと思いますが・・・)。

キチンとsession_regenerate_idなどを挟んでいるのなら、session.cookie_secure は off でもいいと思いますけどね。それとも、そんなに大切なデータを扱うのでしょうか?
    • good
    • 0
この回答へのお礼

agunuzさま
ご回答ありがとうございます。
なるほど!
session.cookie_secureがOnの場合、SSL通信だけなんですね。
「XSS攻撃に部分的に有効」だから絶対にしなくてはいけないと思い込んで
他がすっかり抜け落ちていました。早とちりした自分が恥ずかしいです。
確かにマニュアルにもそう記載されていますね。
ご指摘の通り、そこまで重要なデータを扱っているわけではないので
session.cookie_secureの設定はOffにします。

本当にありがとうございました。

お礼日時:2013/12/10 16:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!