スレッド表示 | フラット表示〕 全トピック 920 件中 727 番目 次≫ ≪前

ユーザー認証

created: 2003-11-12 10:19 | modified: 2003-11-23 11:54 | reply: 9

[972] ユーザー認証

user: 314 | created: 2003-11-12 10:19
お世話になってます。

PHPだけのユーザー認証とアパッチを使ったユーザー認証とあると思いますが、
アパッチを使ったユーザー認証は一度入ればそのディレクトリ以下はスルーでいけますよね。
これって認証をクリアしたという情報はサーバ側に保存されてるのでしょうか?
それともクッキーかな?

PHPのみでユーザー認証を作った場合、認証OKのフラグをクッキーに保存するかセッションで持ち歩くかしか思いつかないのですが…

お勧めの方法ってありますか?
reply: 976 返信 編集 削除

[976] セッションに1票

user: ゆうじ | created: 2003-11-12 11:25
クッキーに認証フラグを保存するのはダメです。
クッキーはユーザーによって
簡単に書き換えることが出来ますので
認証の役割を果たしません。

あとは、目的に応じて使い分けるのでしょうが、
個人的には、ページごとに挙動を制御できる、
セッションが、良いと思います。
Parent: 972  reply: 981 返信 編集 削除

[981] セッションって…

user: 314 | created: 2003-11-12 17:18
こんにちは。

以前、認証フラグをセッションに保存するってのを作ったことはあるんですけど、その時の記憶では、
1.認証画面→OK
2.色々操作する
3.お気に入りに追加
4.ブラウザを閉じる

数十分後、お気に入りからアクセスすると、認証後の画面が出てしまうんですよ。

クッキーを受ける状態だと送られてくるクッキー情報では「そのセッションのみ」となっていて、
ブラウザを閉じるとそのクッキーも消えるんですけど、クッキーを受けない設定にして、URLにうめまれた情報は生きてるんですよ。

サーバの設定だけかな?
Parent: 976  reply: 989 返信 編集 削除

[989] session.use_trans_sid

user: ゆうじ | created: 2003-11-13 09:29
会員登録などで、
仮登録→正式登録のような2重の登録処理を、
sid付きURLを記述したメールを介して行なう場合も
これに該当しますね。

こんな場合は、ブラウザが閉じられていてもセッションIDが有効なように、
session.use_trans_sid = 1
としています。

なので、これを 0 とすれば、
お気に入りからアクセスしても古いセッションIDが無効となり、
あらためて認証を要求することが出来ます。
Parent: 981  reply: 1000 返信 編集 削除

[1000] 試してみました

user: 314 | created: 2003-11-14 08:46
これだとURLに埋め込まないですね。
この場合クッキーを受けない状態にしているユーザーは中に入ることができないのですかね?

クッキーチェックをしてクッキーの使えないユーザーに注意をうながすのは出来るのですが、出来ればどちらのユーザーも特別設定なく使えるってのが理想なのですが。
例のお気に入りも無効になる…

無理ですかね?
Parent: 989  reply: 1005 返信 編集 削除

[1005] すみませんでした。

user: ゆうじ | created: 2003-11-14 12:58
よく確かめたところ、
session.use_trans_sid = 0 であらためて認証を
要求できるというのは、私の間違いでした。
ブラウザのクッキーをOFFに設定したつもりが出来ておらず、
クッキーONのまま、<?=SID?>付きURLでアクセスしたところ、
認証が要求されたので、このような勘違いをしてしまいました。

間違った情報をお伝えして申し訳ありませんでした。


> これだとURLに埋め込まないですね。
> この場合クッキーを受けない状態にしているユーザーは中に入ることができないのですかね?
session.use_trans_sid = 0 だと、
自動でURLに埋め込まれませんが、
必要なところに自分でつければ良いだけです。


> 無理ですかね?
クッキーON、OFFに関わらず、古くなった
セッションIDを破棄すればよいことはわかるのですが、
それをスクリプト側で処理しているのか、
それとも設定してできるものなのか、
あらためて調べて出直します。
Parent: 1000  reply: 1013 返信 編集 削除

[1013] 【報告】セッションの切断について

user: ゆうじ | created: 2003-11-15 16:17
あらためて調べ直し、
不要となったセッションを速やかに切断する方法を検証してみました。

結論から云うと、
クッキーを使わずに、URLにセッションIDを付加した場合、
php.ini の設定やDSO版PHPだけでは
完全なセッションの切断は無理でした。

しかしながら設定やスクリプトで、
ある程度は可能なことを確かめられました。

時間がなかったのでまだメモの状態ですが
こちらにまとめました。
http://www.sound-uz.jp/php/archives/memo/session_login.txt


追記:
ApacheのBasic認証についてまったく触れていませんでした。
Basic認証で使用したユーザー名とパスワードは、
ユーザー側のクッキーに保存されます。
Parent: 1005  reply: 1034 返信 編集 削除

[1034] ご苦労様です&ありがと

user: 314 | created: 2003-11-18 14:06
メモ見させてもらいました。
色々試していただいてありがとうございました。

僕も本とかを読みあさったんですけど、ゆうじさんと似た意見しか見つけれなかったです。
session.gc_maxlifetimeで破棄の対象になる時間を決めれるのに、消されるまでは有効ってのが個人的に納得いかないんですよねぇ? 矛盾してますよね?
session.gc_probability についてはゆうじさんがおっしゃる通り、サーバ負荷が高くなるので出来れば「1」にと本には書いてありました。

セッションでの認証… 微妙だなぁ…
Parent: 1013  reply: 1065 返信 編集 削除

[1065] セッションにアクセス時間を記録

user: ゆうじ | created: 2003-11-21 19:07
もうよろしいのかもしれませんが
[1063] ログイン状態
この件でいろいろ調べてたらPHP-MLにありました。
http://ns1.php.gr.jp/pipermail/php-users/2002-April/007136.html

セッション変数にアクセス時間を記録して、現在時刻と比較すれば、
セッションIDが破棄されていなくても、
再度ログインを促したりといった処理が出来ますね。
これなら、クッキーのON/OFFも影響しませんし。
Parent: 1034  reply: 1080 返信 編集 削除

[1080] なるへそ?

user: 314 | created: 2003-11-23 11:54
う?ん、盲点だったというか、言われてみればなるほど?って感じですね^^;

ちょっとしたアイデアがいかに大事か再度実感しました。

この方法でやってみまっす!
Parent: 1065  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 727 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑