基本認証の際、どのようにユーザー判別を行えばいいのでしょうか?


例えば@niftyの場合、会員サイトのユーザー認証はすべて基本認証で行っています。例えばhatenaというIDで会員メールにログインするとhatenaのメールが表示されます。hatena2というIDだとhatena2のメールボックスが表示されます。しかしメーラーは一つしかありません。私が考えるには環境変数か何かでIDを取得しただログを読み込んでいるだけではないかと。しかしこの場合、セキュリティ面として考え物ですよね(?)

いったいどのようにして安全にユーザーを判別できるのでしょうか?

今回はユーザー判別の方法を質問しています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/11/20 08:47:29
  • 終了:--

回答(5件)

id:ootatmt No.1

ootatmt回答回数1307ベストアンサー獲得回数652005/11/20 09:06:59

ポイント5pt

基本認証されたユーザ名は、環境変数 REMOTE_USER に格納されていますので、これを見て判別します。

id:esecua

回答ありがとうございました。

@niftyが環境変数からユーザーIDを取得し判別しているのでしょか?セキュリティ面で見ても簡単に偽造できてしまうような感じですが。

2005/11/20 10:19:19
id:ngc02 No.2

ngc02回答回数108ベストアンサー獲得回数22005/11/20 11:28:32

ログインするところのアドレスを見てもらえたらわかるとおり、Basic認証をかけるところにはHTTPS(SSL)のプロトコルか使われているので大丈夫です。

http://e-words.jp/w/SSL.html

SSLとは 【Secure Socket Layer】 ─ 意味・解説 : IT用語辞典 e-Words

ちなみにSSLの128bitです

id:esecua

回答ありがとうございます。

SSLはサーバーとクライアントの間を流れるパケットを暗号化する技術ですよ。

今回聞いている「ユーザー判別の方法」とは異なるようが、、もし環境変数からIDを取得してログを読み込んでいるだけならブラウザをハックして別の環境変数を渡せば簡単に。。。。

ということで環境変数ではないような気がするのです。いったいどのように認証しているのでしょか?

ありがとうございました。

2005/11/20 20:29:16
id:ramdass No.3

ramdass回答回数119ベストアンサー獲得回数12005/11/20 12:54:31

ポイント20pt

http://www.hatena.ne.jp/1132444049#

人力検索はてな - 基本認証の際、どのようにユーザー判別を行えばいいのでしょうか? 例えば@niftyの場合、会員サイトのユーザー認証はすべて基本認証で行っています。例えばhatenaというID..

>環境変数か何かでIDを取得しただログを読み込んでいるだけではないかと。しかしこの場合、セキュリティ面として考え物ですよね(?)


これで十分セキュアにできます。

要は環境変数が漏洩したり操作されなければよいだけの話で、そうするようにシステムを構築しているはずです。


Apacheの走っているOSにゲストアカウントがなかったり、パッチはキチンと当てたり、ファイヤウォールが設置されたしますよね。


環境変数があぶないということは、最終的なメールサーバも危ないということです。


個別の事情はわかりませんが、一般的にはそういうところです。

id:esecua

どのように構築しているのでしょか?なぞです。

回答ありがとうございました。

2005/11/20 20:31:22
id:ma-kanoh No.4

ma-kanoh回答回数155ベストアンサー獲得回数42005/11/20 23:36:50

ポイント20pt

>どのように構築しているのでしょか?なぞです。


環境変数というのはOS上ののプロセスメモリ空間上にあるので、OSにログインできて、はじめて取得できます。


だから構築方法としては、なるべく他人がOSにはログインできないように各種の設定をします。絶対とは言い切れませんが、ある程度設定で構築することは可能です。


ということでCGIの場合は


REMOTE_USER=ma-kanoh


とかを取得できるようになってます。HTTP的には


http://dummy?REMOTE_USER=ma-kanoh


とかですけど。ちなみにクライアント側もIEを入れ替えればREMOTE_USERを取得することは可能です。(それを一般には脆弱性と呼んでしまってるようですが)

id:esecua

回答ありがとうございました。

2005/11/21 07:33:55
id:ootatmt No.5

ootatmt回答回数1307ベストアンサー獲得回数652005/11/20 23:59:16

ポイント35pt

> @niftyが環境変数からユーザーIDを取得し判別しているのでしょか?


たぶんそうでしょう。

ただしWebサーバの種類によっては変数名が違うかもしれません。


> セキュリティ面で見ても簡単に偽造できてしまうような感じですが。


REMOTE_USER が偽装可能であるという話は今のところないようですね。


> もし環境変数からIDを取得してログを読み込んでいるだけならブラウザをハックして別の環境変数を渡せば簡単に。。。。


いいえ、そう簡単にはいきません。

ブラウザから任意のユーザ名を送るのはハックするまでもなく簡単に出来ますが、REMOTE_USER に入力するためには認証される必要がありますので、ブラウザ側からはどうにもできません。


それを行おうとするとApacheなどのサーバをハックしなければなりませんので、通常は無理でしょう。

id:esecua

なるほど、REMOTE_USERを変換してもサーバーは変換に気づきそのパスワードを求めてくるので無理だということですね。やっと分かりました。ありがとうございました。

もうちょっといい回答がないか待って見ます。

2005/11/22 09:25:40

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません