- ベストアンサー
PHPSESSIDの表示
- PHPSESSIDの表示について質問です。セッションを利用する際に、URLにPHPSESSIDが表示される理由と、表示を防ぐ方法について教えてください。
- 質問者は自分の環境だけでなく、他のサイトでも同様の現象を確認しているようです。例としてサイバーエージェントの会社サイトを挙げています。
- リファラーや検索エンジンに乗っ取られることがセキュリティ上の問題になる可能性があるため、表示を防ぐ方法を求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
GETでのセッションIDの受け渡しを避けるには、session.use_only_cookies = 1にして使うと良いと思います。但し、COOKIEを使えないクライアントやロボットなどの場合はセッションが利きませんので注意して下さい。 PHPのセッションを使うとそんなこんなで色々な制約が出てきちゃうので、僕は最近は使わなくなりました。オリジナルの暗号ルーチンでアクセスの同一性だけを次のページに受け渡しをしています。セッション変数が使えませんが、色々な方法で何とか回避してます。
その他の回答 (1)
- wakame0729
- ベストアンサー率32% (245/765)
>COOKIEが必須となると、拒否している人を弾いてしまうので、はずすのは難しいです。 そうなんですよね。でもロボットはcookieなんて使いませんので、これを外さない限りはロボット巡回の際セッションIDが付加されてしまいます。 オリジナルのはセッション機能という程ではありません。アクセスの同一性を受け渡しているだけです。セッション変数など使えませんから、次のページに渡さなければならないパラメータは全部GETなどで渡さないといけないので設計が大変ですよ。でもメリットデメリットを考えて、PHPセッションを使うよりはこちらの方が良い、という判断です。
お礼
そうですよね。ロボットにもPHPSESSIDが発行されてしまうんですね。とはいえ、ほとんどのサイトでセッション管理してると思いますが、検索結果にPHPSESSID=xxxxxっていうURLがでることはあまりないですよね。 なんだか不思議です。 session_trans_cidを使う以上、 表示上、 一番最初のセッション開始時にURLにPHPSESSIDがついてしまうのはしょうがないんですかね。 2ページ目からはシステム的にはついているけど、URL上に表示させないようになってるということですね。 リファラーにもPHPSESSIDは省かれたものがいってるんですよね。 かわりの機能ができればと思うのですが、いろいり試行錯誤してみます。 ご回答ありがとうございました。
お礼
回答ありがとうございます。 COOKIEが必須となると、拒否している人を弾いてしまうので、はずすのは難しいです。 ご自分でセッションと同じような機能をつけてるというわけですね。すごいですね。 残念ながら私にはまだそこまでの技術力がないです。 でも、おっしゃるとおりすでにオープンになっているセッション機能よりも独自のシステムのほうがセキュリティ的には強いのは確かですよね。 http://search.fresheye.com/?kw=%B5%E1%BF%CD&dom=www.qjinweb.com&rt=nf_s わざとなのかわかりませんが、このようにPHPSESSIDを含んだURLが検索結果に出ることが恐ろしくて・・・