Session管理してる?
>>100-101 マニュアル読み直した方が良いかと思われ。 >>102 gcで消えることが多いんだけど、消えてないこともあるぞ。 >>101 session.gc_probabilityでGCの開始確率指定かえてみたら? うげ、session.gc_probabilityのマニュアルを良く読むと、in percentって書 いてある。デフォルトは1.0じゃなくて1%ってことだったのカー。 逝ってくる。 php3国際版を使ってんだけど、id&pass を hidden で渡してるのはやっぱ気持ち悪い。 早いとこ php4に行きたいなぁ。 ところで、php4のセッション管理って、クラスのインスタンスを 保存できないのだよね? スカラー変数と配列のみ?? インスタンスが保存できればうれしいんだけどな。 >>106 クラスのインスタンスもセッション登録は可能です。 メンバのみでメソッドはセッションに保存されないけどね 詳細はマニュアルをみれ >>99-105 わかりやすい流れで助かりました。 ありがとうございます。 PHP4でのセッション管理なんですが、 PHP4標準のセッション機能とPHPLIBでのセッション機能、 みなさんどちらを使用されていますか? どちらを使用しようか迷ってます。 「セキュリティホール memo メーリングリスト」で Apache::Session (Perl モジュール) の話が出てるね。 WebObjects使えば、Session管理は自動。管理そのものに頭を悩ます必要ないです。 そのSession内でやりたいことを記述することに集中できますよ。 PHPもいいですけど、WebObjectsは比較になりませんでした。 結局のところ、session管理にはcookieは使うべきなのだろうか。 クロスサイトスクリプティング等の問題もあるけど。 セッションIDをURLで持たせて行くのは怖いような気がするんですが、みんなはどうやってる? $_SESSION変数を使うえば透過的に処理してくれそうなんだけど、 使ってる人居る? ブラウザを完全に閉じると消える一時的cookieですが、 Proxyサーバーを通している場合、 クライアントがブラウザを閉じてもCookieがProxyサーバーに残りますか? >>115 WebObjectsは反則です。あれはVBでWinアプリ作ってる感覚になっちゃいます。 Perl の CGI::Session::DB_File 使ってるんですが、 ロックファイルはどうやって削除するのがイイんで しょうか? delete() した後も残りますよね。 Apache::Session::Lock::File だと clean() がある んだけど… (でもバグってる) 複数ページにまたがるアンケートで URL埋め込みやhiddenを使ってページ間で値を渡してます URL埋め込みの場合ですが、直打ちで任意のページを表示できてしまうので アンケートの解答中にふとしたはずみで 直にページに飛んでしまい、解答済みのデータが飛ぶかもしれないと PATH_INFOを使って判別してるのですが PATH_INFOは間違った情報を返したりすることはないんでしょうか? リファは結構ふっとんだりしてくれるので 似たようなことが起こるかと心配で… PHPのセッション管理で鯖分散対応の為にセッションハンドラをカスタマイズして、 セッションオブジェクトを外部鯖のDBに保存する方法があるんだが、 http://www.pgsql.info/yohgaki.php http://www.phpbuilder.com/columns/ying20000602.php3 誰か実際にやっている人います? >>126 ここのスクリプトを改造して、自前でやってるぞ。 ttp://itb-tech.itboost.co.jp/phptips/view.php?fCID=15 >>126 おれも使ってる。正月にリニューアルしてwebを2台構成にした。 DBは後ろのネットワークに下げて両方から繋いでる。 www1.hoge.com www2.hoge.com の構成でも使えてるヨ。 POSTメソッドを利用して入力フォームからPHPでPostgreSQLにApache経由でデータを登録するプログラムを書いています。 以下のプログラムを冒頭に置くとプログラムの最後の行を示しパーサーエラーで, 停止してしまいます。 session_start(); ob_start("mb_output_handler"); /* データ登録処理 */ if (isset($_POST["sbmt"])) { /* enctypeがmultipart/form-dataなのでエンコーディング変換 */ while (list($key, $val) = each($_POST)) { $_SESSION["post"][$key] = htmlspecialchars( mb_convert_encoding($val, "EUC-JP", "auto"), ENT_COMPAT, "EUC-JP"); } 原因はセッション変数に明示的に変数が設定されていないからでしょうか? >132 サンクス でも、さっきのプログラムの前に別の関数からデータをセットして あると動くんだよね /* セッション変数管理 */ if (!isset($_SESSION["diary_year"])) { $_SESSION["diary_year"] = date("Y"); } こんなかんじで date("Y")って部分は別の関数から定義されてるんだよね 最初にセッション関数が呼び出されたときには、配列の中を空に しておきたいんですよ、それから簡単なエラーチェックをして sbmitが実行した時にさっきのプログラムで文字をエンコードしたいよね。 今までのログを読んだけれど、なんとなくしかわかってないので、 質問させてください。 Perlで会員管理のしくみをつくってるのですが、 会員情報を入れてあるCSVファイルに、セッションIDの列をつくる。 IDパスワードを入れてもらってログインに成功した場合、 $year.$month.$day.$hour.$min.$$をcryptしたものを、 会員情報のセッションID列と、クッキーの両方に書き込んで、 以降は、そのセッションIDをクッキーでもらったら、それに該当する会員情報を表示する・・・ これって、問題ないでしょうか? また、セッションIDを暗号化するという場合、上記のようにサーバ側とクライアント側両方を、 cryptするべきなんでしょうか? >>134 やりかた自体はOK。 cryptはCookieのマジックナンバーを生成するために行うもの。 だからクッキーを生成するときに1回だけ行う。 135です。 自己レスだが134には問題あった。 会員テーブルにセッションIDフィールドを持たせるのはよくない。 セッションはセッション管理用のテーブルを別にもたせる。 そのテーブルには、 セッションID ユーザ識別コード セッション間で引き渡すデータ セッションの最終アクセス日時 などを入れておく。 >>137 たびたびすみません。 で、正直、>>137 のようにするメリットがわかりません。。。 あと、ユーザ識別コードって、 会員テーブルのユニークな主キー(の外部キー)っていうことですか? >>138 ユーザ識別コードはユーザごとのユニークなキー です。セッション間で値を引き渡すだけの簡単な 管理だけなら不要ですね。ログインして利用する サイトを作るなら必要になると思いますが。 セッション管理の理論は書いてあっても実装まで具体的に 書かれている本って少ないですから、書籍で勉強する よりホームページで勉強したほうがいいかもね。 すいません、あとひとつ。 >>137 だと、 もしユーザが「ログアウト」ボタンを押したとき、 クライアントの持ってるクッキーも削除(過去の時間を指定)して、 セッション管理用テーブルから該当レコードを削除すればいいわけですよね? ただ、ユーザがログアウトボタンを押さずにブラウザを閉じてしまった場合、 該当レコードは削除されないため、レコードがどんどんたまってしまうかと思います。 これは、どうすればいいのでしょう? ほっとくしかない?あるいは、 どっかのタイミング(そのユーザがまたログインしてきたとき?)に削除するのでしょうか? あ、そのために「セッションの最終アクセス日時」の列があるのかな? >>141 ふつうはサーバでクーロン動かして定期的に掃除してやる。 >>142 そっかー。 いまつくってるところ、クーロン使えないんですよね・・・ なら、そのユーザがまたログインしてきたときに、 削除(というか新しいセッションIDに書き換える) でも、問題とくにないですよね? ($sec, $min, $hour, $mday, $mon, $year,$wday, $yday, $isdst) = localtime(time); $year += 1900;#気持ちわるいので、一応4桁にしておく $sessionid = crypt($year.$mon.$mday.$hour.$min.$sec.$$, "AA"); で、セッションIDを取得したのですが、なんかいアクセスしても、 $sessionid = AAwTU6/kNo2jY という文字列になってしまいます。 なぜなんでしょうか >>143 ユーザが再度ログインしたら、前回のそのユーザのセッション ファイルだけ削除する必要はない。ログインしたらすべての セッションファイルをチェックして、時間切れになるものをすべて 削除すればOK。 ASP VBScriptでsession変数を使ってセッション管理しようおおもうのですが、 ブラウザがわでクッキー無効にされてる場合ってセッション管理できなくなってしまうのでしょうか?その場合はURLにうめこむとか、HiddenでPOSTするとかで対処するしかないのでしょうか? $sessionid = crypt($year.$mon.$mday.$hour.$min.$sec.$$, "AA"); print $sessionid; ・・と、セッションIDを生成してるのですが、 リロードを何度やっても同じ文字列になってしまい、 わけわからん状態です。。。 どうしてなのでしょうか? crypt って、先頭の何文字かしかみてなかったと思う。 >>148 なーるほど。 調べたら、先頭8文字しか見てないようです DES(無印) = 8文字 MD5($1$) = 255文字(?) BlowFish($2$) = ? >>147 セッションを全く理解していないと思われるので、 まずフローチャート描いてみることをお勧めする。 セッション管理しつつ、2重ログイン(複数の人が同じIDでログイン)を禁止 するには、どうすればいいのでしょうか? >154 「あなたは本当に○○さんですか?」というダイアログを出す。 SSL 使えないならマジこれしかない。 あ、すいません、訂正 2重ログイン(複数の人が同じIDでログイン) ↓ 2重ログイン(複数の人が同じIDで、同時に、ログイン) >>154 んん? どんなセッション管理の方法を使ってるのかわからんが……。 普通はそんな状況にはならんのではないのか? IDとセッションを対で運用してる? 一つのIDには一つまでのセッションしかないようにすれば、解決しないか? >>157 設計しだいだな。ログイン時の IP アドレスを記録しておいて、 同一 ID に対する最終ログイン IP アドレスしか受け付けないように するしかないか。 A → ログイン (成功) A → ページ要求 (成功) B → ログイン (成功) A → ページ要求 (失敗) B → ページ要求 (成功) これは IP アドレスを個人特定のキーに使っているが、ID に対する 初回ログイン時に Cookie を発行して、ID と Cookie を検証するとか そういう方法しかない。まぁこの話を聞いてピンとこなきゃあきらめれ。 Javaを使っている場合、JMSを使ってみるとか。Sessionオブジェクトを一定期間DBなんかに永続化して ログイン時に同じオブジェクトが永続化されていればログイン中などの判定を下す… 色々な判定基準があるだろうけど。ちょっと実装が難しいかな。 >>158 ほんとだ。普通にクッキーと、セッションマスタ.csvをつくってたら、 自然と解決してた。 あのー、(トップ含めて)すべてのページをcgi'perl)にして、 セッション管理してたら、共用サーバだと追い出されます? >>163 そうなんだ。。。 てっきり、「当たり前だろ」みたいなレスがくるかなと思ってた。 ∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ / つ.;ダブダブ-│ 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ε3 ゛゛'゛'゛ おかずなら過激に http://www.dvd01.hamstar.jp perlとクッキーで強引につくってしまったが重いー ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━― ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉 __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄ 申込フォームがたくさんあるサイトを構築していて、 申込フォームが2,3ページまたがるページが多いとする。 (申込1->申込2->確認->完了のような) この場合、その申込フォーム毎にsessionで パラメータ受け渡しするのって割と普通にやるもん? hiddenで持ちまわしてもいいんだけど、 入力不備があって前のページに戻したい時 入力されたパラメータを維持させた状態で前のページに戻そうとすると LocationだとGETで渡すしかなくて、それだとURLに出てしまう。 sessionでやれるんであればそのページ自体にPOSTして 入力チェックもそのページ内のコードで完結できて あとはLocationで飛ばせばすむ。 申込フォーム毎にセッション作るっておかしい? それくらいhiddenでやるべき? マジレスきぼん。 >>174 ある程度の信頼性が求められる場面では、サーバ側にセッション変数保存するのが鉄則。 PHPのsession.gc_probabilityって変更してます? ヤフーのIDってどうやってブラウザーで セッション情報保持してんの? クッキーすててもログアウトするまでID残ってんだけど・・・ 誰か知らない?? >>179 ブラウザがメモリにクッキー持ってるのでは? ファイルとしてのクッキーは捨ててもメモリーには 残るんですね・・・・・・ レンタルサーバーにショッピングサイトを作りたいのですが ↓みたいなのでいいと思いますか? 使用可能な環境 SSL CGI SQLDB ログイン画面→画面1→画面2→画面3 (全部SSL) 1.ログイン画面でID・パスワードを入れる SQLDBと比較してOK 2.セッションIDを生成しクッキー作成(期限無効メモリー内) サーバー上のセッションIDファイルへ追加 3.画面2→画面3へ移るたびにクッキーの セッションIDとサーバーのセッションIDファイルを 比較してチェック 今迷っているのはセッションIDをどう生成するかです。 また、画面移動するたびにチェックが必要なのでしょうか。 みなさんはどうしていますか? PHP4やクッキーでいろいろセッション管理調べて 試したけど、どれも一長一短でいまいち。 そこで、ふと思いついたんだけど セッションIDなんて使うから危険? 単純に hidden + POST(GETはダメ) + SSL(必須) で ID+パスワードをパラメータで毎回送って 全ページで認証すればいいような。 PHP使おうが、クッキー使おうがどっちみち セッションIDの認証は全ページしないといけない 事を考えるとレスポンス自体もそんなにかわらない ような気がするし、セキュリティーの 観点から見ても結構いいと思うけど どうでしょうか。 なによりも 携帯端末でもこの仕組みなら問題ないしね。 >>186 じゃオマエのアホじゃない方法を述べてみろ そして、どこがアホかも述べろ アホ どなたか、セッション管理について分かりやすく書かれているサイトを教えてくださいませんか >>185 セッションIDが何かわかってないな・・ クッキー吐き出さん、携帯端末でブラウザとサーバー間で行う セッション管理のような真似はできまつか... >1 当時はPearのSessionライブラリも無かったのか。 >>193 どんなテクニックで行うのか教えてもらえませんか、参考になるURLでもいいでつ よろぴく。 ASPのsession管理ってcookieオフってると使えないのですか? PHPは? javaもcookie使ってるの? >>194 たとえばJavaServletなら、response.encodeURL("URL")で、クッキー使わないことが可能 >>196 同じく ログを読まずに同じ質問でループさせるカスも終了してほしい。 >>185 セッションIDの認証は全ページしないといけない 何で全ページで認証させるの? セッションIDの意味ないじゃん セクース相手をセショ-ン管理できますか? いろんな店に行ってるので、どこ娘とやったのか覚えきらんのです。 だから、無期限の cookie を発行してセショ-ン管理したいなと。 セッションってどのぐらいの容量までいいの? /tmp/sess_??? ファイルに入るんだよね。 DBにした場合フィールド長をどのくらいにしようかと・・・ 携帯向けセッション管理がわからないです・・・ hidden連れ回しじゃなくURLリライティング?とかでやりたいんですけど apacheのmod_rewriteとかでいいんでしょうか? 情報お願いします >>2 ならこのスレのみんなに理想どおりの彼女ができる Perl CGI::Sessionでセッション管理 Cookieからセッションidを読み取れた = Cookieオンである と判断して間違いないでしょうか? それとも、Cookieからセッションidを読み取れたが、 Cookieに書き込みができない、という状況も想定するべきですか? 適当に過ぎちゃって、今更ちゃんとやろうとすると難しいなw Perlのセッションの決定版書籍ってないかな。 | | ガガガッ | | 人 ∧_∧ < >_∧∩ ( ・∀・) 人`Д´)/ ←>>153 と ) < >_∧∩ Y /ノ .人`Д´)/ ←>>177 / ) < >_∧∩ _/し' //. V`Д´)/ ←>>213 (_フ彡 / 俺たち未来から来た。 perlで。 時代が流れ流れて 2014年の perlはこんなかんじになったぞい ちなみにperl自体ですら鯖になるんだぞい セッション管理とデータベースをバインド ちなロシア製 $self->plugin('session' => { store => MojoX::Session::Store::Dbi->new( dbh => DBI->connect('DBI:mysql:MyApp:', 'user', 'pass'), ), transport => MojoX::Session::Transport::Cookie->new, expires_delta => 36000, stash_key => 'mojox-session', }); # Router my $r = $self->routes; # /nurupo にアクセスすると welcome ページを表示 $r->get('/nurupo')->to('example#welcome'); my $logged_in = $r->bridge->to( 'example#login'); ## / とか /hogehogeとかにアクセスしようとすると ログインしてないと ログイン画面に戻る セッション?そんなもん意識したら負け $logged_in->get('/')->to( 'example#welcome'); $logged_in->get('/hogehoge')->to( 'example#hoegehoe'); 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 GAG6LMPRK5 首都圏の鉄道各社が18日、一斉に運賃の値上げに踏み切る。多くは国の制度を活用したホームドアなどバリアフリー設備の整備促進を前提とした値上げだが、新型コロナウイルス禍による乗客減少を理由に通常の手続きで運賃改定を行う会社もある。生活必需品などの値上げが相次ぐ中、一段と財布に冷たい風が吹き込みそうだ。 「できれば目標を前倒しして整備していきたい」 18日から国の「鉄道駅バリアフリー料金制度」を活用した値上げを実施するJR東日本。同社は令和13年度までに東京圏330駅にホームドアを設置する目標だが、深沢祐二社長は増収分でさらなる整備の加速に取り組む考えを示した。 JR東はホームドア設置に加え、段差解消やトイレの改良などバリアフリー化に要する費用を、既に投資した分を含め6千億円近くと見込む。制度利用による増収分は年約230億円と予測されるだけに、同社にとってメリットは大きい。 運賃を値上げする際、事業者は国の認可が必要となる。認可条件にも鉄道事業が3年連続で赤字になることなどが含まれ、審査のハードルは高い。だが、3年12月創設の同制度は、値上げ分の使途がバリアフリー化に限定される代わりに審査不要の届け出制だ。 また、値上げ幅のルールはないが、乗客に「薄く広く」負担を求めるとされ、国実施のアンケートでも値上げ幅は「10円まで」が許容範囲との趣旨の回答が6割に上り、各社ともそれに沿った対応をしている。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる