• 締切済み

セッションのことで質問です

サイトのリニューアル中、文法のチェックで another htmlを使ってて <a>タグになんか知らない文字が入るんだよなーって前から思っていて。 session.use_trans_sid が有効になっている時にセッションIDが自動で 付加されることに本日やっと気づきまして。 なるほど…と思っていた時に思い立ったことがありまして。 そもそもanother htmlでチェックした時にセッションIDが見える ということ自体は問題ではないのか??ということなのですが どうなんでしょうか?? こういう状況は、サイトの作り(セッションの扱い・セキュリティ)に 問題がある ということでしょうか。 そうであれば、何か対策を立てた方がよいのかな と思うのですが 具体的にこういうことをした方がいい というアドバイスもありましたら 教えて頂けると助かります(PHP Version 4.3.11です) ヨロシクお願いします

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • tomtom963
  • ベストアンサー率19% (19/96)
回答No.1

http://q.hatena.ne.jp/1098206920 ここら辺が参考になるかな? そもそもクッキーが有効でない環境も考慮した設定なんですか? (クッキーを無効化したブラウザや携帯ブラウザなど) ついでに >PHP Version 4.3.11です 新規に作るならPHP4は考えない方がいいです。 PHP4のすべてのサポートは2008/08/08で終了しています。

koke29
質問者

お礼

返答と参考URLありがとうございます リニューアルしているサイトというのが数年前に 業者に組んでもらったもので、SESSION周りもそちらで 作ったり設定したものなんです 携帯に関してはクッキー使っていないのでこの件については 考えなくても大丈夫です 無効化した環境のはわからないので 検証してみます SESSIONはセキュリティなどが絡むので手出ししにくかったのと 今まで使う機会も無かったので使い方は知っている程度のレベルです 今回、質問のような状況になっていることに初めて気付いて 問題があるのか、少し不安になったもので質問させて頂きました 参考サイトを見たり調べたことで、動作は仕様であるということは わかったのですが、結局それで何かしらの問題があるのかないのか っていう結論がわかりません 私の調べ方が悪いのか、SESSIONの使い方についての説明サイトばかりで SESSIONを使うことで出る弊害などについて書いているサイトが 見つけられなかったので、答えを知っている人が確実にいるであろう こちらに質問してみました

関連するQ&A

  • Cookie非使用のセッションについて

    携帯サイトを作成しているので、URLに直接IDを埋め込む形でセッションさせたいのですが、うまくいきません。 レンタルサーバ(heteml)には『php.iniの設定-session.use_trans_sid』が用意されているのですが、クッキー環境であればそちらを優先したいので、携帯サイト向けのファイルのソース上で何とかしようとしている所です。 そんな訳で、サーバーの『php.iniの設定-session.use_trans_sid』はOFFにした状態で **************a.php********************************** <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); $_SESSION["test"] = "テストです"; echo "<a href=\"b.php\">セッションテスト</a>"; ?> ***************************************************** **************b.php********************************** <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); echo $_SESSION["test"]; ?> ***************************************************** と、したのですがうまくいきません。 ini_set関数の使い方が間違っているのでしょうか? また、手動でIDを埋め込むやり方でも構いませんので、 ご存知の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • セッションが引き継げません

    PHP5.3 + Apache2.2 Windowsです。 IE7でページ遷移を行うと、セッションが引き継げず、新しいセッションが作成されてしまいます。(Chromeでは引き継げます) セッション保存フォルダに新しいセッションファイルが生成されていました。 以下ソースコードです。 $_SESSION['hogehoge'] = 'xxxx'; header("Location:sapmle.php"); sapmle.phpで$_SESSION['hogehoge']を参照すると、エラーになる。 エラー内容:Notice Undefined Index 'hogehoge' また、<a href="sample.php">次のページ</a> と記述したリンクをクリックしても同じエラーになります。 php.ini の use_trans_sid を Onにすると、エラーは出ません。 use_only_cookies を OnしてもOffにしてもエラーは出ました。 use_trans_sid が Offでも header("Location:sapmle.php?" . session_name() . "=" . session_id()); と書くとエラーは出ません。 エラーが出なくなれば良いので、use_trans_sid を Onにしたり、URLにセッションIDを付与すれば良いのかもしれませんが、 これらの処置はセキュリティ上良くないと聞いたことがあるので、どうするのがいいのかわかりません。 わかる人教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 携帯サイト用PHPのセッションについて

    はじめまして。 携帯サイトでPHPのセッションを使ってリンク先の【Location:】内にURL情報を埋め込みたいのですが、「携帯ではクッキーがつかえない」「【session.use_cookies】と【session.use_trans_sid】の設定で使えるようになる。」と見たので試しているのですがうまくいきません。助けてください。 今試してみている記述内容は下記となっています。 ・記述内容: >>test_a/1.php <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); $_SESSION['test'] = "http://xxx.xx/test_a/"; header("Location:http://xxx.xx/test_b/2.php? .session_name().'='.session_id()."); exit; ?> >>test_b/2.php <?php ini_set("session.use_cookies","0"); ini_set("session.use_trans_sid","1"); session_start(); echo "セッションは" .$_SESSION['test']; ?> 試しに"echo"で表示させてみたところ、PCでは「セッションはhttp://xxx.xx/test_a/」と表示されるのですが、携帯(FOMA F904i)では「セッションは」しか表示されません。 どなたか、よろしくお願いします。

    • 締切済み
    • PHP
  • ドコモのセッション機能について

    iモードHTMLシュミレータIIを使用して携帯版のサイトを作成しています。 セッションがうまく動いていないような感じがします。 画面遷移した後に”$_SESSION”の中身がないようです。 私の確認方法が悪いのでしょうか? 【環境】 ・iモードHTMLシュミレータII ・XAMPP Windows版Version 1.7.1 ・C:\xampp\php\php.iniの設定 ; This option enables administrators to make their users invulnerable to ; attacks which involve passing session ids in URLs; defaults to 0. session.use_only_cookies = 0 ; trans sid support is disabled by default. ; Use of trans sid may risk your users security. ; Use this option with caution. ; - User may send URL contains active session ID ; to other person via. email/irc/etc. ; - URL that contains active session ID may be stored ; in publically accessible computer. ; - User may access your site with the same session ID ; always using URL stored in browser's history or bookmarks. session.use_trans_sid = 1 【index.php】 <? session_start(); echo 'use_only_cookies = ' . ini_get('use_only_cookies') . "\n"; $_SESSION["xxx"] = "1234567890"; $login_url = "main.php"; header("Location: {$login_url}"); ?> ⇒”use_only_cookies =”のみ表示 【main.php】 <? session_start(); print_r($_SESSION); echo 'sssion.use_trans_sid = ' . ini_get('session.use_trans_sid') . "\n"; ?> ⇒”Array()”のみ表示 ⇒”sssion.use_trans_sid=1”表示 何か設定が悪いのでしょうか? よろしくお願いします。

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

    参考書を読んだり調べたのですが、セッションidの使い方がよくわからないので質問させて下さい。 PHP4.3.10、 session.use_only_cookies off session.use_trans_sid offになっています。 携帯でログイン(login.php)後 メニュー(menu.php)でDBに登録されているIDとパスワードが一致したら SIDを発行してユーザの識別をしたいと考えています。 そこでわからないことがあります。 メニューにはA.php、B.php・・とあるのですが リンクするたびに <a href="A.php?<?php echo SID;?>">A.php</a> <a href="B.php?<?php echo SID;?>">B.php</a> のようにするのか、または$SID=session_id();のようにするのでしょうか。 そしてA.phpやB.phpでの識別はSIDをファイルなどに保存してその都度 これを呼び出し比較していくのでしょうか。 また、$_SESSION['a']="123";と session_register("a"); $a="123"; というのは同等の意味でしょうか。 質問ばかりですがどうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • session.nameについて

    PHPのセッションの設定についての質問です。 セッションの値がPHPSESSIDだと長いので、短くしようと思い、 ini_set("session.name", "sid"); と設定しました。 設定を確認すべく、<?=session_name()?> で表示すると、ちゃんと sid となっているのですが、 <?=SID?> でセッションと一緒に表示すると、なぜか PHPSESSID=XXXXXXXXXXXXXXXXXXXXXXX というふうに、名前が変わってくれません。 実際には、リンクの後ろに自動でセッションが付く 機能(session.use_trans_sid ですかね)を利用 したいので、自動でセッションをリンクにつけて 表示しているのですが、その際にもやはり、元のまま PHPSESSIDと表示されてしまう状況です。 ※ちなみに、php.ini はいじれないので、PHPファイル  の冒頭で、ini_setをしている状況です。 どなたか解決策をご存知の方がいましたら、教えて いただけますか? よろしくお願いします。

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

    PHP5.3.14を使っています。 セッションについて勉強中です。 セッションを使ってページの表示回数をカウントアップするソースと、 そのセッションを破棄するソースの2種類を用意しました。 ※それぞれ、session_id()をecho表示しています。 クッキーを使った状態でこれらを動かすと、 リセットする(リンクを押してリロードする)度にセッションIDが変わるのですが、 クッキーを使わずに定義済み定数SIDを使って動かすと、 カウント値は元に戻るのですが、 リセットしてもセッションIDが変わりません。 どうすれば、新しいセッションIDを発行(SIDの値を更新)できるのでしょうか? よろしくお願いします。 【以下、ソース2種類と、iniファイルの一部です】 ●up.php <?php session_start(); if (empty($_SESSION['count'])) { $_SESSION['count'] = 1; } else { $_SESSION['count']++; } echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); ?> <p> <?php echo $_SESSION['count']; ?> 回目。 </p> <p><a href="up.php">カウントアップ</A> </p> <p> <a href="reset.php">リセット</A> </p> ●reset.php <?php session_start(); echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); echo ("##### ". $_SESSION['count']."回表示しました。</br>"); $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } if(isset($_REQUEST[session_name()])){ $_REQUEST[session_name()]="" ; } session_destroy(); ?> <p> <a href="up.php">初めからカウントする</A> </p> ●php.ini (クッキーを使わずSIDを使うを設定) session.use_trans_sid = 1 session.use_only_cookies=0 session.use_cookies=0

    • 締切済み
    • PHP
  • セッションが変数が取得できません

    こんにちは。初心者で大変申し訳ないのですが、2日間悩みましたがどうしても解決できないため質問させて頂きました。どうかご教授下さい。 PHPのセッション機能の利用をしようと以下のような環境でテストスクリプトを実行したのですが、うまくいきません。 PHPバージョン4.3.10 register_globals On session.auto_start Off session.bug_compat_42 On session.bug_compat_warn On session.cache_expire 180 session.cache_limiter nocache session.cookie_domain no value session.cookie_lifetime 0 session.cookie_path / session.cookie_secure Off session.entropy_file no value no session.entropy_length 0 session.gc_divisor 100 session.gc_maxlifetime 1440 session.gc_probability 1 session.name PHPSESSID session.referer_check no value session.save_handler files session.save_path /tmp session.serialize_handler php session.use_cookies Off session.use_only_cookies Off session.use_trans_sid On SESSION登録側スクリプト <?php session_start(); $_SESSION['tarou'] = 50; ?> <a href="test.php">test</a> 結果表示側スクリプト <?php session_start(); echo($_SESSION['tarou']); ?> session.use_trans_sid Onで透過的にURIにセッションIDを埋め込むタイプで、 セッションファイル自体は作られているのですが セッション変数は登録されておらず、空のセッションファイルとなってしまっています。 色々と調べてみたのですがどうしても解決できません。 大変お手数ですがどうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 困ってます。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
  • session(PHP)が表示されない。

    sessionを理解するために簡単な例文を入力して sessionを呼び出そうとしました。 しかしできません。文法上は本のCDを丸写しなので 問題ないと思います。 設定(php.ini)で何か確認する場所があればお願いします。 Windows XP Apache 1.3.27 PHP 4.3.1 session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_dividend 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler 0 0 session.save_path /tmp /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid On On

    • ベストアンサー
    • PHP

専門家に質問してみよう