X



【PHP】セッションについて語ろう!【PHP】
■ このスレッドは過去ログ倉庫に格納されています
0803nobodyさん
垢版 |
2007/11/17(土) 09:00:33ID:???
hpのセッション管理について、動作が不明な点があります。
(現象)
1. ログイン実行、ログイン成功ならばクッキー変数にセッションIDを設定します。

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

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

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

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

もしかすると私のphpのセッションの仕様理解不足な点があるかもしれません。
わかる方がおりましたら教えてください。
0804803
垢版 |
2007/11/17(土) 09:03:02ID:???
すみません、1行目入力ミスしました
× hpのセッション管理について、動作が不明な点があります。
○ phpのセッション管理について、動作が不明な点があります。

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

何かでちゃんと確認した?ガベージコレクションがセッションを軒並み
削除してしまうなんてことはないはずだけど
0806nobodyさん
垢版 |
2007/11/19(月) 22:42:35ID:???
質問なんだけどauサイトでのセッション管理はURLにセッションID埋め込む方法でOK?
docomoとソフトバンクは上手くセッション管理できてるけどauだけ何故か上手くいかなくて。。
0807nobodyさん
垢版 |
2007/11/19(月) 23:40:56ID:???
>>803
セッション固定脆弱性と同じ原因でしょ。

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

>>806
auはクッキー使える
0808nobodyさん
垢版 |
2007/12/06(木) 21:19:04ID:NgA5yLDN
PHPに限ったことではないんですが、タブブラウザとかで1つのwebアプリに
ログインした状態でもう一つタブを作ると、同一セッションになってしまいますよね。
これを回避するブラウザ、もしくは対策はないでしょうか。
(全てのページのURLにセッション名を埋め込むとかは面倒なのでしたくないです)
0809nobodyさん
垢版 |
2007/12/06(木) 22:37:58ID:???
セッションの仕組みを考えれば分かる事だろう?勉強不足。
0811nobodyさん
垢版 |
2007/12/07(金) 05:11:27ID:???
あーはいはい。余程悔しかったんだね。
そんな書き込みしてる暇あったら少しはお勉強しなよ僕^^

まずは、日本語のね(笑)
0813nobodyさん
垢版 |
2007/12/08(土) 07:19:25ID:???
windowsで開発するときのセッションファイルってどこにあるん?
0814nobodyさん
垢版 |
2008/03/08(土) 03:14:32ID:???
XPだと
C:\WINDOWS\Temp
ほかの環境は試したことないからわからん
0815nobodyさん
垢版 |
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

と表示したいのですが何か方法はないのでしょうか?クッキーとか使わずに。
0816よーわからんが
垢版 |
2009/02/15(日) 17:31:56ID:ig6UuNex
要するにセッションを破棄した後で、そのセッションに入っていた変数を参照したい、ということなら、
$_SESSION = array();
の直前に
$temp = $_SESSION;
とかしておいて、最後の
echo $_SESSION['abc'];
の代わりに
echo $temp['abc'];
とかすればよいのでは?
はずしてたらスマソ
0817nobodyさん
垢版 |
2009/03/12(木) 07:13:55ID:???
質問です。mixiってSSLじゃないけど大丈夫なんですか?
これが、楽天やアマゾンだと
普通の商品ページ→http
しかし、購入後の清算ページ OR 会員登録 OR 会員登録変更などは
全部httpsです。

これって、とりあえずセッションIDを変えてるってことですよね
0818nobodyさん
垢版 |
2009/03/12(木) 13:09:42ID:???
mixiなんてプレミアムの申し込み以外は個人情報入力するわけでもないのにSSL化する意味あるのか
2ちゃんで名前欄にコテハン入力するのと同じレベルだぞ
0820nobodyさん
垢版 |
2012/07/20(金) 12:55:54.60ID:???
セッションしようぜ!
0821nobodyさん
垢版 |
2012/08/06(月) 19:05:05.06ID:???
セッションセッション!
0822nobodyさん
垢版 |
2013/08/06(火) NY:AN:NY.ANID:???
PHP.iniのsession.save_handler に、独自のセッションハンドラを定義する
方法はあるのでしょうか?

セッション変数をDBに格納したいので独自にハンドラを書きたいのですが、
事情によりスクリプト内でsession_set_save_handler関数は使えないんです。
0823nobodyさん
垢版 |
2017/06/16(金) 02:17:14.58ID:Q+lMB4cD
>>822

独自のセッションハンドラを、標準的なセッション(ファイルベース)と挙動が変わらないように実装するのは意外に面倒。
セッション変数をDBに格納したい理由が分からんが、session_start()を呼んでいる前後でsession_id()をDBに登録するのでは駄目かな?
0824nobodyさん
垢版 |
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はここでは省略しています。
0825nobodyさん
垢版 |
2017/07/16(日) 04:11:54.15ID:2UeiIHQZ
>>824

session_idを使う方法は新たなセッション変数が不要なので最も簡便だが、
フォームとcookieを比較されたらすぐにバレるので、
バリデーションを保証する要素としては使わない方が良い。
$_SESSION['token']を作る場合は、いつどこで作るのか、
それが既に定義されていた場合のフローなどを考える必要がある。
よって、ページ遷移元を保証するだけならsession_idでも構わないが、
バリデーションを保証する目的で$_SESSION['token']を作る価値はある。
0826nobodyさん
垢版 |
2017/07/16(日) 21:41:06.20ID:???
>>825
詳しくありがとうございます。
それぞれ単独で説明する記事は見られるのですが比較する記事が見つからなくて迷ってました。
助かりました。
0827nobodyさん
垢版 |
2017/07/18(火) 02:28:06.12ID:Ro/ZKJYI
>>826
セキュリティに対する意識は単価の高い案件に携わるには必須だよ。
ガンバレ!
0828nobodyさん
垢版 |
2017/12/30(土) 12:40:32.46ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

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

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

5TNTB
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況