【PHP】セッションについて語ろう!【PHP】

1nobodyさん03/09/24 19:31ID:SnRvXmpI
ブラウザを閉じたらセッションの効果がなくなるのって、
ブラウザを閉じることでクッキーを消しているからなのですね。。
知らなかったよーーーーうわーーーん

779nobodyさん2007/07/16(月) 10:55:19ID:???
PCサイトではCookie必須とし、session.use_trans_sidはOFFにする。
携帯サイトの場合は、最低限session_nameはデフォルト以外を使う(EZwebを除く)。

ってことでOK?

780nobodyさん2007/07/17(火) 08:16:46ID:???
アマゾンのあれもセッションじゃん
セキュリティもへったくれもないような

781nobodyさん2007/07/17(火) 10:55:11ID:???
>>778
だから、セッションIDが漏れても大丈夫なように対策をするわけだ。
非常に低レベルな対策としてはIPアドレスを使う方法だが、
これは例えばDoCoMo携帯みたいに接続ごとにIP変わる場合には使えねぇな。

DoCoMoはリファラ吐かないが、auなんかリファラ吐くから簡単にセッションIDは漏れる。
だから、例えばauの個体識別番号なんかを使って、万が一セッションIDが漏れても
大丈夫なように対策をするわけだろ?

でも個体識別番号の通知をオフにする設定も出来るわけで、そこら辺どう対策していくかとかさ。
それ以前に、最近のau機種の大半ははクッキー対応してるけどw

俺の管理しているサイトの鯖ログには、
mixiのセッションIDがくっついたリファラや、
YahooメールのセッションIDがくっついたリファラがたくさん残ってるが、
だからといってそのURLにアクセスbオても無駄だわbネ。当たり前。

782nobodyさん2007/07/17(火) 16:09:19ID:???
>>781
mixiはたぶん、毎ログインごとにセッションIDをDBに保存していると思う。
だから、1人のユーザがログインしている時だけ有効なセッションIDを
利用するから、二度と同じセッションIDは使えないわけで、
それがセキュリティ対策になっているのだと思う。

と言ってもOpenPNEのソースをみた印象なので、正しいかどうかはわからないが。

783nobodyさん2007/08/13(月) 17:11:35ID:2Us4/V6C
すみません質問です!
localhost/test/sessiontest/index.php ←ここでsession_start()してprint session_id(); print session_name();
localhost/test/index.php ←ここでsession_start()してprint session_id(); print session_name();
すると両方とも名前はPHPSESSIDなんですがIDが違ってて、sessiontest/index.phpでセットした値が上の階層で使えません。
下階層でセットしたセッション情報って上の階層で拾うにはどうすればいいのでしょうか。

784nobodyさん2007/08/13(月) 19:51:06ID:???
session_set_cookie_params

785nobodyさん2007/08/31(金) 15:08:21ID:1lVu4gM5
セッション管理のヘルパとかライブラリってありますか。
軽量な奴で。

786nobodyさん2007/08/31(金) 18:25:49ID:???
さあ

787nobodyさん2007/08/31(金) 20:00:57ID:???
無駄なレスするなよ。屑が。

788nobodyさん2007/08/31(金) 23:38:44ID:???
無駄なレスするなよ。糞が。

789nobodyさん2007/09/01(土) 01:28:14ID:NDVzf3zM
>>785
俺が自分で作ったやつがある

790nobodyさん2007/09/01(土) 06:46:49ID:???
>>789
ここに貼って下さい

791nobodyさん2007/09/01(土) 16:55:59ID:fGUplrri
[2ch公式広告]

一瞬、ハーバーライフと間違えるところだった。。
違うよ、コレは。

ヤフオク関連の最強情報
これを知らずして、ヤフオクで稼ぐことは出来ない。(キッパリ)

http://2ch2.net/.l?=jd2e

792nobodyさん2007/09/01(土) 19:11:24ID:???
( ´д)ヒソ(´д`)ヒソ(д` )

7937892007/09/03(月) 09:18:25ID:ipYR2CKm
いや、つうかさ、
>セッション管理のヘルパとかライブラリ
とかって、何に対してして欲しいのさ?
Perlやってた俺としては、PHPは十分便利だと思うけど?

794nobodyさん2007/09/03(月) 09:52:57ID:M+H83k8j
クッキーじゃ駄目なの?

7957892007/09/03(月) 11:44:25ID:ipYR2CKm
クッキーは1024byteまでしか使えないんじゃなかった?

796nobodyさん2007/09/03(月) 13:43:02ID:???
4KBじゃなかったっけ

797nobodyさん2007/09/03(月) 22:23:06ID:???
4096bytes/cookieで特定のホストかドメイン毎に20cookieまで。
さらに携帯では制限付くよ。
というかDoCoMoがいつまでもCokkie非対応で
そろそろ機能が付くという話も聞いた気がしたがサイトに情報なかったな。

798nobodyさん2007/10/06(土) 16:08:49ID:iTscqPhy
最近、セッションが勝手に切れるんだけど、
同じ現象を経験した人いる?

799nobodyさん2007/10/06(土) 16:54:37ID:???
>>798
どこのセッション?

800nobodyさん2007/10/06(土) 19:32:49ID:iTscqPhy
>>798
俺が作ったショッピングサイト。
ショッピングカートの中身が消えるという現象が起きてる。
タイミングは不明。
商品を10、20個入れても消えない時もあるし、3個で消えた事もある。
セッションが破棄されるタイミングがさっぱりわからないんだ。

801nobodyさん2007/10/06(土) 20:18:38ID:???
お前のバグだ

802nobodyさん2007/10/08(月) 15:32:47ID:???
>>800
lifetime切れじゃね?

803nobodyさん2007/11/17(土) 09:00:33ID:???
hpのセッション管理について、動作が不明な点があります。
(現象)
1. ログイン実行、ログイン成功ならばクッキー変数にセッションIDを設定します。

2. しばらくログインしたままで画面を開いていました。
 ガベージコレクションが実行されてプログラム内で設定したセッション変数が削除
 されました。

3. ログアウトの処理を実行せず、画面を閉じて終了しました。
 明示的にsesson_destroy()は実行していません。

4. 再度ログインしました。その後設定されているセッション変数を確認したところ、
 上記1.で設定していたセッションIDと同じ値が設定されました。

2.でガベージコレクションが実行されてセッション変数が
削除されたはずなのに、再度ログインすると同じ以前と同じセッションIDとなる
理由がわかりません。
セッションIDはガベージコレクション実行後でも削除されないのでしょうか。
PHPでセッションIDが変更されるのはどのようなタイミングなのでしょうか。

もしかすると私のphpのセッションの仕様理解不足な点があるかもしれません。
わかる方がおりましたら教えてください。

8048032007/11/17(土) 09:03:02ID:???
すみません、1行目入力ミスしました
× hpのセッション管理について、動作が不明な点があります。
○ phpのセッション管理について、動作が不明な点があります。


805nobodyさん2007/11/18(日) 18:06:28ID:???
>803
>ガベージコレクションが実行されてプログラム内で設定したセッション変数が削除されました。

何かでちゃんと確認した?ガベージコレクションがセッションを軒並み
削除してしまうなんてことはないはずだけど

806nobodyさん2007/11/19(月) 22:42:35ID:???
質問なんだけどauサイトでのセッション管理はURLにセッションID埋め込む方法でOK?
docomoとソフトバンクは上手くセッション管理できてるけどauだけ何故か上手くいかなくて。。

807nobodyさん2007/11/19(月) 23:40:56ID:???
>>803
セッション固定脆弱性と同じ原因でしょ。

この場合はセッションIDが悪意を持つだれかが用意したものではなくて、
クッキーや履歴の一部(クエリ文字列でセッションIDを引き回した場合)に古いセッションIDが残っていて、それが利用されたと考えられる。
この動作には害はないけどセッション固定攻撃されると危険なので対策を施した方がいい。

>>806
auはクッキー使える

808nobodyさん2007/12/06(木) 21:19:04ID:NgA5yLDN
PHPに限ったことではないんですが、タブブラウザとかで1つのwebアプリに
ログインした状態でもう一つタブを作ると、同一セッションになってしまいますよね。
これを回避するブラウザ、もしくは対策はないでしょうか。
(全てのページのURLにセッション名を埋め込むとかは面倒なのでしたくないです)

809nobodyさん2007/12/06(木) 22:37:58ID:???
セッションの仕組みを考えれば分かる事だろう?勉強不足。

810nobodyさん2007/12/07(金) 01:41:17ID:???
>>809
sine kitigai

811nobodyさん2007/12/07(金) 05:11:27ID:???
あーはいはい。余程悔しかったんだね。
そんな書き込みしてる暇あったら少しはお勉強しなよ僕^^

まずは、日本語のね(笑)

812nobodyさん2007/12/07(金) 05:50:16ID:???
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2411791&SiteID=7
にもある通り、ctrl+nで開かれた場合を考えると難しいのでは

813nobodyさん2007/12/08(土) 07:19:25ID:???
windowsで開発するときのセッションファイルってどこにあるん?

814nobodyさん2008/03/08(土) 03:14:32ID:???
XPだと
C:\WINDOWS\Temp
ほかの環境は試したことないからわからん

815nobodyさん2009/01/29(木) 18:26:11ID:???
//$_SESSION['abc']; は前ページで123を代入

//ここから
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy();

echo $_SESSION['abc'];//123

と表示したいのですが何か方法はないのでしょうか?クッキーとか使わずに。

816よーわからんが2009/02/15(日) 17:31:56ID:ig6UuNex
要するにセッションを破棄した後で、そのセッションに入っていた変数を参照したい、ということなら、
$_SESSION = array();
の直前に
$temp = $_SESSION;
とかしておいて、最後の
echo $_SESSION['abc'];
の代わりに
echo $temp['abc'];
とかすればよいのでは?
はずしてたらスマソ

817nobodyさん2009/03/12(木) 07:13:55ID:???
質問です。mixiってSSLじゃないけど大丈夫なんですか?
これが、楽天やアマゾンだと
普通の商品ページ→http
しかし、購入後の清算ページ OR 会員登録 OR 会員登録変更などは
全部httpsです。

これって、とりあえずセッションIDを変えてるってことですよね

818nobodyさん2009/03/12(木) 13:09:42ID:???
mixiなんてプレミアムの申し込み以外は個人情報入力するわけでもないのにSSL化する意味あるのか
2ちゃんで名前欄にコテハン入力するのと同じレベルだぞ

819 【30.4m】 電脳プリオン2012/05/20(日) 23:16:11.62ID:????PLT(12079)
もう語らないのか

820nobodyさん2012/07/20(金) 12:55:54.60ID:???
セッションしようぜ!

821nobodyさん2012/08/06(月) 19:05:05.06ID:???
セッションセッション!

822nobodyさん2013/08/06(火) NY:AN:NY.ANID:???
PHP.iniのsession.save_handler に、独自のセッションハンドラを定義する
方法はあるのでしょうか?

セッション変数をDBに格納したいので独自にハンドラを書きたいのですが、
事情によりスクリプト内でsession_set_save_handler関数は使えないんです。

823nobodyさん2017/06/16(金) 02:17:14.58ID:Q+lMB4cD
>>822

独自のセッションハンドラを、標準的なセッション(ファイルベース)と挙動が変わらないように実装するのは意外に面倒。
セッション変数をDBに格納したい理由が分からんが、session_start()を呼んでいる前後でsession_id()をDBに登録するのでは駄目かな?

824nobodyさん2017/07/12(水) 20:55:17.87ID:0xbGegyr
問い合わせフォームのページ遷移で、自分のページから来たことを確かめるためにセッションを使っています。
input type="hidden" name="token"

他人のブログ等見ると、

■session_idを使う方法

$token = hash('sha256', session_id());

if ($_POST['token'] != hash('sha256', session_id())) {

■$_SESSIONと照合する方法

$_SESSION['token'] = rtrim(base64_encode(openssl_random_pseudo_bytes(32)),"=");

if ($_SESSION['token'] != $_POST['token']) {

と2種類(他にも?)見られますがどちらがいいのでしょうか?
htmlspecialcharsはここでは省略しています。

825nobodyさん2017/07/16(日) 04:11:54.15ID:2UeiIHQZ
>>824

session_idを使う方法は新たなセッション変数が不要なので最も簡便だが、
フォームとcookieを比較されたらすぐにバレるので、
バリデーションを保証する要素としては使わない方が良い。
$_SESSION['token']を作る場合は、いつどこで作るのか、
それが既に定義されていた場合のフローなどを考える必要がある。
よって、ページ遷移元を保証するだけならsession_idでも構わないが、
バリデーションを保証する目的で$_SESSION['token']を作る価値はある。

826nobodyさん2017/07/16(日) 21:41:06.20ID:???
>>825
詳しくありがとうございます。
それぞれ単独で説明する記事は見られるのですが比較する記事が見つからなくて迷ってました。
助かりました。

827nobodyさん2017/07/18(火) 02:28:06.12ID:Ro/ZKJYI
>>826
セキュリティに対する意識は単価の高い案件に携わるには必須だよ。
ガンバレ!

828nobodyさん2017/12/30(土) 12:40:32.46ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

FBZK1A4NUV

829nobodyさん2018/06/21(木) 10:42:50.51ID:VtSVJLaY
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

5TNTB

新着レスの表示
レスを投稿する