【PHP】セッションについて語ろう!【PHP】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/09/24 19:31ID:SnRvXmpIブラウザを閉じることでクッキーを消しているからなのですね。。
知らなかったよーーーーうわーーーん
0002nobodyさん
03/09/24 19:32ID:SnRvXmpIIPをキーにして
普通につくれるじゃん。。
と思ったんんだけどどうう?
0003nobodyさん
03/09/24 20:24ID:???1、スレ建て宣言…………1
2、開会の辞………………1
3、煽 り………………住人有志
4、逝ってよし……………1
5、御前もな………………住人有志
6、決意表明………………1
7、祝電披露………………1の家臣
8、来賓挨拶………………1の母親
9、来賓挨拶………………1の主治医
10、余興……………………もな踊り保存会
11、余興……………………1騙り太夫
12、送辞……………………大検
13、答辞……………………1
14、板歌斉唱………………全員
15、閉会の辞………………スレッドストッパー
16、終了宣言………………ひろゆき(削除忍代読)
0004nobodyさん
03/09/24 22:39ID:???0005nobodyさん
03/09/24 22:40ID:???世の中の全端末にグローバルIPアドレスを付与出来るようになったのなら、それでも良いんだろうけどな。
NATやNAPT、プロキシサーバなんてもんが存在してしまうわけだ。
0007nobodyさん
03/09/24 23:48ID:???0008sage
03/09/25 00:23ID:???変わらなければ問題はない。
けれども変わるから完全ではない。
でも用途によれば、問題なく利用できるよね。
使う目的によって、価値も変わってくるということだ。
0009nobodyさん
03/09/25 00:41ID:ZJmN+3d30010nobodyさん
03/09/25 00:57ID:???0011sage
03/09/25 02:07ID:???誰かおしえてちょんまげ
0012nobodyさん
03/09/25 10:43ID:???問題はその逆。
同じアドレスで複数の人がアクセスする可能性
同じクライアントで別人がアクセスする可能性
これがあるから、そのままでは使えない
0013sage
03/09/25 17:47ID:???セッションと同じ機能をまるごとつくれるんじゃないか?
0015nobodyさん
03/09/25 18:38ID:???0018nobodyさん
03/09/25 19:43ID:T3dpzMyk0019nobodyさん
03/09/25 21:11ID:???0021nobodyさん
03/09/26 00:02ID:???PHP マニュアル:セッション処理関数(session)
http://php.planetmirror.com/manual/ja/ref.session.php
クッキー仕様書日本語訳
http://www.futomi.com/lecture/cookie/specification.html
0022nobodyさん
03/09/27 07:48ID:efY9iLPNの回避策にsession使ってるけど邪道?
0023nobodyさん
03/09/27 10:39ID:???素直にDBの主キーと比較するとかもあると思うけど、それほど邪道でもないかと。
複数ページでのつながりを確保するのが目的だからな。
0024nobodyさん
03/09/27 20:12ID:76PBBTl7sessionでチェックという以前に、
遷移先画面にリダイレクトさせて、戻れなくするのが基本じゃないのかなぁ??
0025直リン
03/09/27 20:13ID:fK1fC/Fc0028nobodyさん
03/09/28 22:40ID:???ところのほうが好感が持てますね
0029nobodyさん
03/09/30 15:43ID:2jXpVkA50030nobodyさん
03/10/01 12:48ID:???0031nobodyさん
03/10/01 18:29ID:MgXABHqI0032nobodyさん
03/10/01 18:45ID:H4wYblVHYahooドメインかどうかを判断して不正ができないようにしているみたいですが、これってクラックの危険性はありますか?
大丈夫そうだったらウチのサイトでも導入しようかと考えてます。
0033nobodyさん
03/10/01 19:14ID:???対策はされている。
0034nobodyさん
03/10/02 04:12ID:jb4S4+xE0035nobodyさん
03/10/04 01:01ID:8tSg2rjLphp.ini
0036nobodyさん
03/10/04 07:34ID:???0037nobodyさん
03/10/05 22:20ID:???>>2から10個ぐらいの書き込み見ると、完全にネタスレだと思ったけど、
その後、ベタっぽい低空飛行で展開されているようなので、俺も判断に苦
しんでる。
0040nobodyさん
03/10/11 00:39ID:???------------------------------------------------------------------------------
セッションとセキュリティ
外部リンク: Session fixation
セッションモジュールは、セッションに保存した情報を見ることができるのが
そのセッションを作成したユーザーだけであることを保証することができません。
セッションの完全性を積極的に守るには、そのセッションに 紐づく値に応じた追加措置が必要です。
セッションに運ばれるデータの重要性を評価し、必要な保護策を講じて下さい。
これには通常、お金があかり、ユーザの利便性を損なうことになります。例えば、簡単な
社会工学的な策略からユーザを守るためには、 session.use_only_cookiesを有効にして下さい。
この場合、ユーザ側でクッキーは無条件に有効となっている必要があり ます。そうでない場合、
セッションは動作しません。
存在するセッションIDが第三者に洩れる手順は何種類かあります。
洩れたセッションIDにより、第三者が特定のIDに関連する全てのリソースにアクセスできるように
なります。まず、セッションIDがURLにより伝 送される場合です。外部サイトにリンクを張っている場合、
外部サイト のreferrerログにセッションIDを含むURLが保存される可能性があります。
第二に、よりアクティブな攻撃者がネットワークのトラフィックをモニターしている可能性があります。
セッションIDが暗号化されていない場合、セッションIDはネットワーク上を平文テキストで伝送されます。
解決策はサーバ上にSSLを実装し、確実にユーザに適用することです。
-------------------------------------------------------------------------------
0042nobodyさん
03/10/11 10:46ID:f+KUGOmH初心者には分かりきったことではないんでしょう。
なぜつっかかるのかわからん。
0044参考
03/10/12 02:38ID:hB6ZK8LUttp://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.html
・セッションハイジャック
・Session Fixation攻撃
0045nobodyさん
03/10/12 02:43ID:hB6ZK8LUキャッシュを public にすると、そのままブラウザ閉じても、そのURLを開けばまた
情報が出てくるからじゃないの?
0046nobodyさん
03/10/12 02:47ID:???>>28は戻るボタンを用意して、内容を復元する配慮をしてくれと
言ってるので、ブラウザの戻るでのキャッシュを使えとは言ってない
0048nobodyさん
03/10/12 03:08ID:mzy4uQ15ちなみに、J-PHONE J-SH05ではダメみたいです。
0049nobodyさん
03/10/12 03:14ID:hB6ZK8LUセッションの仕組み一度自分で作ってみたらどう?と思ったよ
0050nobodyさん
03/10/14 21:07ID:/RUyf6Fs書いて普通にうまくいってたのですが、idを毎回変えたくて
ttp://www.asahi-net.or.jp/~wv7y-kmr/note/2003-09.html#YMD20030907_PHP
を参考に、疑似 session_regenerate_id()を作りました。
function session_switching() {
$qq = serialize($HTTP_SESSION_VARS);
if (!session_destroy()) {
session_id(md5(uniqid(rand(), 1)));
session_start();
$HTTP_SESSION_VARS = unserialize($qq);
return true;
} else {
return false;
}
}
んで、
session_start();
$noerr = session_switching();
ってやってみたんですが、関数の中のsession_start()で
「Fatal error: Failed to initialize session module」が出てしまいます。
destroy()したあとすぐにstart()するときに何か特別に注意することってあるんですか?
DB関連とsession_set_save_handlerはここをヒントにしました。
http://itbtech.itboost.co.jp/php/php_12.php
DBじゃなく、普通のファイル管理ではうまく動きました。
環境は、RedHat8.0, PHP-4.2.2, MySQL-3.23.56です。
0051nobodyさん
03/10/14 21:11ID:/RUyf6Fsif (!session_destroy()) {
↓
if (session_destroy()) {
0052nobodyさん
03/11/13 18:52ID:???0053nobodyさん
03/11/19 18:30ID:???0054nobodyさん
04/01/08 05:26ID:K/SrUI+S実際の所さCOOKIE無効のクライアントでも同一か認識できるから
俺はCOOKIEへの保存をセッションに保存してるわけだが
邪 道 か な ?
0055nobodyさん
04/01/09 19:32ID:???0056ななしくん
04/01/27 22:58ID:vdgC7W+O使い方があまりにも簡単すぎて($_SESSIONとクッキー使った場合)
こっちは身構えてるので、逆に解説とかがわかりにくかった(藁
0057nobodyさん
04/01/28 03:07ID:IiAYAwD1確かにセッション使うのは楽だけど、
動作原理はしっかり理解する必要があるよ。
0058ななしくん
04/01/28 06:10ID:???様々な解説書サイトなどはそういう意図で、原理を説明されてるんだとは思います。
なんか、「どう使うか!!!」がなかなかわからなかったんですよ(藁
0059nobodyさん
04/01/28 08:42ID:???セッションが機能するのに何ページ必要かとか悩んだ悩んだ。
a.html フォーム
|
b.php session_start(); $_SESSION['data']='a';
|
c.php sessin_start(); $data = $_SESSION['data'];
0060nobodyさん
04/01/29 07:51ID:???自分がやってることが、全然見当外れなのではないかと思ったりも。
もしかしたら、そうなのかもしれない。
一応自分の思ったとおりに動作しているし、人にチェックしてもらっても
ちゃんと動作していると彼は言う…。
>>57
使い方だけで、まだ原理とかあやふやなので
ちゃんと勉強してみようと思います。
0061nobodyさん
04/02/01 18:12ID:LMIdhuo4どうやってクライアントを認識しているのか教えてほしいage
0062nobodyさん
04/02/12 11:51ID:acZilhbSカートに商品が入らないという問い合わせが、頻繁ではないがどうしても尽きない。
結局、クライアント側の設定に依存するし、やはり客に色々設定を強いるのはどうかと思う。
次やるとしたらamazonのようにURLに渡して管理したいけど、カート以前のページは
よほど商品数が多くない限り、一般的に静的に作りますよね?
そこで、URLでセッション管理したいがために、静的HTMLで済むものを、全部PHPで動的に
出力するのは馬鹿げた考えでしょうか?
0064nobodyさん
04/02/14 08:52ID:???PHPでも同じようなことしてるひといるでしょう。
0065nobodyさん
04/02/14 17:19ID:X1Wwd0H+とすると、<input name="msg">に入力された文字列が
/tmpのセッションファイルに書き込まれると思いますが、
保存されるときの文字コードはブラウザから送られてくる
文字コードのままなんでしょうか?
1行目の方法で保存したものを、echo $_SESSION['msgs'];
で出力しても日本語部分が表示されません。
よろしくお願いします。
ブラウザはIEで、サーバー側はこうなってます。
mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS
/tmpにある今回のセッションファイル : SJIS
0066nobodyさん
04/02/14 19:01ID:1TD2enu00067nobodyさん
04/02/17 21:52ID:???0068nobodyさん
04/02/18 22:47ID:???Amazonのように作るならOKじゃないの。
あれのカートは「誰の」という情報とは結びつかないようにしてあって、
会計の段階で「誰の」に結びつけるようにしてる。
# cookieが使える場合には、名無しさんAのカートのように、名無しさんも
# 区別して結びつけるけど。cookieに保存したセッションIDを使って。
その辺の個人情報や決済部分と切り離して設計できてれば
カート情報なんて商品リストの中から商品を選んだだけの存在だからね。
007068
04/02/19 23:37ID:???普通に使えますよ、カート機能自体はSIDがURLに付加されてますし。
cookieが使える場合はその他の機能がプラスされたり、
カート機能の照合補正が行われたり。結構上手く出来てると思います。
気にならない(気づかない)というところも上手いところ。
0071nobodyさん
04/03/04 23:25ID:???戻るボタンで戻ったら有効期限切れってなるのは
どう言う解決法があるのですか?
0072nobodyさん
04/03/07 22:46ID:Nzwf/rJi0073nobodyさん
04/03/09 22:32ID:???昔から、通販業者系はサーバサイドのセッション管理が標準だね。
0074nobodyさん
04/03/18 02:35ID:5cjOT2D0私にお任せあれ!!!!!
0075nobodyさん
04/03/18 05:54ID:zQ2yHGPusession.cookie_lifetime integer
session.cookie_lifetimeは、ブラウザに送信す るクッキーの有効期間を秒単位で指定します。値0は、"ブラウザを閉じ るまで"を意味します。デフォルトは、0です。 session_get_cookie_params()および session_set_cookie_params()も参照して下さい。
0076nobodyさん
04/03/18 09:33ID:SVbaZ9qTini_set( 'session.cookie_lifetime' ,’3600’ );と記述しました。
書き方がおかしいでしょうか?
この書き方では、設定変更は出来ないようです。
Local Valueは3600に変わるのですが、Master Valueは0になっております。
Master Valueも3600には変わらないのでしょうか?
ini_setを使えばソースから書きかえられると思うのですが。
0078nobodyさん
04/03/18 10:53ID:SVbaZ9qT一言添えればよかったですね。
ちょっとこちらで質問させてください。
0079nobodyさん
04/03/18 12:14ID:???76の内容については向こうで既にレスが付いているが?
Local Valueではなく、Master Valueでないと駄目という理由が判らん。
値の優先度はLocal(高)、Master(低)。ディレクトリごと指定したいのなら、
Apacheの場合だと.htaccessを利用すれば良かろ
0080nobodyさん
04/03/18 14:49ID:SVbaZ9qT記述して、セッションIDが追加されなくはなります。
しかし、// ini_set( 'session.cookie_lifetime' ,’3600’ );と
記述して設定をやめて、アップしても
セッションIDが作られないんです。
0081nobodyさん
04/03/19 15:09ID:???セッションが不安定にならない?
漏れの鯖は三日くらいでセッションがプチプチ切れるようになる。
apacheを再起動すると治るけど、
コレってPHPの設定がおかしいからかな?
0082nobodyさん
04/03/19 17:48ID:???PHP のバージョンと OS は何?
Linux で PHP 4.2.x を使っていた頃に同じ状態で苦労したことがあるけど。
Apache の error.log に Segmentation Fault とかのログが残ってる?
0083nobodyさん
04/03/19 22:04ID:???child pid ***** exit signal Segmentation Fault
ログにはこんなもんがいくつか残ってました
OSはRedhatLinuxでapache1.3.27、PHP4.3.2です
なんか分かりますか?
008482
04/03/20 00:30ID:???php.ini のセッションの設定で、
session.save_handler
に files 以外を指定している場合は安定しないかもしれない。
でも、PHP 4.3.2 だと、
bug #24592 (NULL related crash in session extension)
bug #22154 (Possible crash when memory_limit is reached and output buffering in addition to session.use_trans_sid is used)
の可能性の方が高そう。PHP 4.3.3 で修正されているみたいなので
バージョンアップしたらセッション周りは安定するかもしれない。
今なら、PHP 4.3.4 かな。もうすぐ PHP 4.3.5 が出そうだけど。
まあ、クリティカルなシステムをバージョンアップするなら、
十分にテストしてからにした方がいいと思う。
0085nobodyさん
04/03/20 10:00ID:???どうもです
ああ、やっぱバージョンのせいなんですかね
セッション機能にはmmを利用しているんですが、
どうせ処理速度には大差がないだろうし、filesを検討します
そのうちPHP5が出てきそうですが、
焦って飛びつくのは危険そうですね
008684
04/03/20 10:55ID:???PHP 4.2.x の頃に、パフォーマンス的に有利ということだったので、
session.save_handler = mm
にしていたことがあったけど、>>81 とほぼ同じ症状になった。
原因が分からず、随分悩んだ後、files に戻したところ、安定するようになった。
PHP 4.3.0 以降では確認していなかったけど、修正はされていないのかな。
0087nobodyさん
04/03/20 12:40ID:???特に処理速度にも問題ないし、とりあえず大丈夫
まあ今後>>81の症状がでるかどうかまだ分かりませんが・・・
でもコレはPHP4.3.2の問題じゃないかもしれませんね
apacheもlogrotateの時にサービスが落ちたりしますから
今じゃ毎朝cronでapacheを再起動してます(苦笑)
008887
04/03/20 13:11ID:???apacheがちょくちょく落ちるのってかなりやばいよなあ(汗)
OSのレベルからアップグレードを考えるいい機会かもしれない
008986
04/03/20 13:35ID:???その状態だと、PHP の方が問題の可能性が高いと思う。
当時は、3日から 1週間にに一度再起動していたし、
apachectl で restart すると Apache が落ちてしまって、
apachectl start しないと起動しない状態になっていたので。
files に変更してからは、Apache が落ちることもなくなったので、
同じ問題だとすると、安定するかもしれないので、しばらく様子を
見てもいいかもしれない。
セキュリティ問題のこともあるので、簡単にバージョンアップできる
のであれば、バージョンアップした方がいいと思うけど。
0090nobodyさん
04/03/20 15:55ID:???mm ってなんですか?
当方セッション情報を MySQL に入れるハンドら作って動かそうとしているのですが、
既存のがあるんなら使っちゃおっかな〜
009286
04/03/20 20:56ID:???セッションの保存用の共有メモリ。
ttp://jp.php.net/session
mm を使うと不安定になるという話をしていたのだが、PHP の最新版では
修正されている可能性もあるので使いたいのならどうぞ。
mm をインストール(既にインストールされている Linux ディストリビューションもある)して、
ttp://www.ossp.org/pkg/lib/mm/
PHP の configure で --with-mm を指定してコンパイルする。
php.ini で
session.save_handler = mm
に変更して Apache を起動。
009390
04/03/21 03:27ID:???どれどれ・・ふむふむ・・
なーんだ、mmってモジュールの名前なのね・・
こっちか・・ http://www.ossp.org/pkg/lib/mm/
UNIXで動くのね・・どれどれ
#whereis mm
mm: /usr/ports/devel/mm
をを、Portsに入ってるジャン
んでも、こいつの動作検証せなあかんのか〜めんどくさっ
以上5分で却下しますた。ごめん。
0094nobodyさん
04/04/02 20:40ID:???こんなんが出てくるんですけど・・・
Warning: session_start(): Cannot send session cookie - headers already sent by
(output started at c:\program files\apache group\apache\htdocs\session\
session_test_1.php:2) in c:\program files\apache group\apache\htdocs\session\
session_test_1.php on line 3
session();の行でエラーなんだそうです。
/tmpのフォルダもCドライブに作りますたがダメです。
なんででしょうか?
0095nobodyさん
04/04/02 20:46ID:???すんません!いきなり判明しました・・・
1行目を空白にしていたのが原因でした。
1: ←空白行にしていた
2:<?
3:session_start();
4:$_SESSION['register'] = 0;
5:
6:?>
1:<?
2:session_start();
3:$_SESSION['register'] = 0;
4:
5:?>
にしただけで治りました・・・
お騒がせしてすんません。
0096nobodyさん
04/04/04 21:49ID:zccZUASsPHPのSIDもOFFにしているのに・・・
なぜ?
・・・と書き込もうとしたら2chに書き込めないw
なぜ掲示板でクッキー必須なんだ?
010090
04/04/05 01:55ID:???010196
04/04/05 23:36ID:EigS3bMU<?php
echo $_SESSION["name"];
?>
とかでセッション情報をページに表示させるようにしてるから
URIパラメータもないし・・・
クッキーがコッソリ動いてるのか?とも思ったが、
2chに書き込みが出来なかったので、それも考えにくい・・・
自分のサイトだけクッキーが有効になってたのか?分からん・・・
■ このスレッドは過去ログ倉庫に格納されています