[PHP-users 16195]Re: アクセス制限について
SAWAI-Syusuke
teto @ sa-y.com
2003年 6月 24日 (火) 17:23:25 JST
さわいです。
> 重松です。こんにちは。
>
> > 例えば IEを 「ctrl-N で 新しくひらく」と「 アイコンから もう一個開く」では
> > クッキーの管理方法が違うので 実現できたりします。
> > そういう のじゃ だめですか?
>
> いやあ、私だけのマニアックなニーズかもしれないんですが、
> Solaris では重いので、w3m を常用しているんですが、
> たまに画像を見たいときとか、Netscape も使うことがあるんですね。
> w3m <-> Netscape では、Cookie の共用はできないと思うのですが、
> session ID が URL 埋め込みでない場合、あるいは、
> Netscape でログインページから新規にログインしようとすると、
> うまくいかないのではないかと思います。
うまくいかない理由がかかれていないので 想像で書きますが、
条件は
「別々のクライアントからおなじアカウントでログインできない」
ですよね。
だったら 同じクライアントから同じアカウントは ログインできてOKでしょう。
(同一のクライアントをどのように定義するかは議論の余地があると思います。)
Netscape用のセッションをもう一つ起こせばいいだけです。
クッキーを共有する必要は ないですよね。
あとは 作りの問題だと おもうんですけど、、、
ログイン中の情報をユーザのテーブルにおかないで
ログイン中専用のテーブルを用意して
ログイン時間、ユーザ名、セッションID、クライアント識別子、最終アクセス時間を
記録しておいてログアウトしたら削除する。また、5分間隔に最終アクセスから
10分以上経ったユーザを削除するとすれば よい。
クッキーやURLから セッションIDを取り出してくれば認証されているか
どうかはログイン中テーブルで確認できます。
あと、別のクライアントからアクセスしてきたときは、クライアント識別子で
チェックし、弾くなり、警告だすなり、古いほうを蹴飛ばすなりすればOKでしょう。
クライアント識別子をIPにしたらproxyを使ったら同一PCになるのは自明でしょう。
proxyつかうと viaヘッダがついたりするので そういうのを使うと
proxy経由アクセスを禁止することも出来ますよね。でも会社のPCから
アクセスできなくなるかもしれないですね。
どうですか? こんなんで、、、
つくるのめんどーですが、、 要件は 満たせると思いますが、、、
PHP-users メーリングリストの案内