|
2009,09,15, Tuesday
apacheで複数のディレクトリにそれぞれのIDにて基本認証をかけているサイトがあります。
今回は、そこで解った盲点というか、トラブルというか、傍から見たら、そりゃミスなんじゃねぇの?まぁ、そんな話です。 apacheで手っ取り早く、基本認証をかけるということになれば、大体、各ディレクトリ直下に「.htaccess」ファイルを置く事が一般的です。 僕の仕事では、割と頻繁に作っているので、「.htaccess」の雛形を持ち、ユーザIDを該当するIDを設定してディレクトリに置いています。 そんな感じで、ふと、運用しているときに起きました。 それぞれ別のIDを設定しているディレクトリを移動したときに、当然のようにIDとパスワードを入力します。 例えばディレクトリAからディレクトリBへ移動する。そんなところです。 運用にて、こういうディレクトリが多くなれば、それぞれIDを打ち直すのが面倒くさいので、大体多くの人はパスワードを記憶します。 で、そのディレクトリBからディレクトリAへ移動すると、確かパスワードを記憶させたはずなのに、ディレクトリBで認証したIDとパスワードが表示されてしまいました。 ブラウザの問題なのかな?とも思い、まぁ、その都度打ち直せばいいやと思っていたのですが、頻繁にディレクトリを移動してたら、やっぱり面倒くさくなる。 どうにかならないか?と思い調べたら、どうもブラウザの問題じゃなく、「.htaccess」の設定内容という所に落ち着く。 「.htaccess」の詳細な書き方は、きちんとしたサイトに譲るとするが、どうやら、AuthNameの設定に問題があるということがわかった。 AuthName "Please enter your ID and password" みたいな事を入れると、基本認証のダイアログに 「Please enter your ID and password」 なんて出せるので、雛形にも定例文のように入れてた訳です。 どうも、それが良くなかったようで、 これは、アクセスしてきたユーザに対するメッセージが表示できるテキスト領域ではなかったのです。AuthNameはこのディレクトリに対する認証領域名として設定する名前で、キーのようなものだと。 そのため、ブラウザは、このAuthNameを見てIDとパスワードを記憶させるので、ディレクトリの移動の度に、前のAuthNameに関連付けていたIDとパスワードが表示されると言う事なのです。 じゃ、どうすれば良いか? 要するに、AuthNameがカブらなければ良いのだから、それぞれユニークになるようにすればいいのです。 だからといって、ディレクトリの名前とか入れてたら、IDとかパスワードのヒントを出してるようにも見えてしまう。 そこで、それぞれの「.htaccess」の設定で AuthName "Please enter your ID and password" を AuthName "Please enter your ID and password [********]" とし、********にランダムで8文字入れて解決しました。 ただ、個人的には…、 わざわざAuthNameにランダムで8文字入れなきゃならなくなったので、簡単にしてた仕事なのに、とんだ運用負担増だと。 何とか簡単にならんものかと、思案にふけってる訳です。 教訓: AuthNameはユニークに。
| http://www.cyberjetshin.com/se_memo/index.php?e=20 |
| テクニカルノート | 05:40 PM | comments (0) | trackback (x) | |
|
コメント
コメントする
|

