• Emacs と Perl を使って,XML-RPC 経由で Movable Type のエントリを編集するツールを配布しています.良かったら持っていってください.( 2004/10/24 update) mapae logo
  • Movable Type で footnote*1 を生成する plugin を配布しています.良かったら持っていってください.( 2004/03/04 update )
  • その他の配布物等

*1: 脚注.よ〜するに,こ〜ゆ〜やつです.

外部に Basic 認証のパスワードが漏れる?

| コメント(0) | トラックバック(0)

特定のブラウザである条件がそろうと,Basic 認証 *1のパスワードが外部に漏れる可能性 *2があるようですね....これって広く知られていることなのでしょうか.

再現に必要となる条件は,以下の通り.

  • Javascript が有効である
  • Basic 認証に必要なユーザ名,パスワードを URL に含めている
【補足説明】

例えば,http://example.com/ の Basic 認証にユーザ名「USER」,パス ワード「PASS」が必要な場合は,http://USER:PASS@example.com/ にアク セスすることにより,ブラウザでのユーザ名,パスワード入力を省くこと が出来ます.

この時,認証が必要なページからリンクをたどりその他のページに移動した とします.すると,ブラウザによっては,Javascript により refere に含 まれるユーザ名とパスワードを取得できてしまうようです.

手元でデモページを作って試してみると,Netscape や Mozilla では大丈夫のようですが,IE だと見事に漏れていますねぇ.

【デモページの使い方】

まず,ブラウザの Javascript 機能を有効にして,http://nyam.helios.dyndns.org/personal/referer-test/

にアクセスする.リンクが一つだけ表示されるので,それを辿る.

ここで表示される「STEP1」のページは,Basic 認証で保護されたページ ですが,URL 中にユーザ名,パスワードが含まれているので,認証用の画 面が開くことはありません.

「STEP1」の画面に表示されている3つのリンクをそれぞれ辿る.

3つのリンクは,STEP2 のページに辿りつく道筋が違います.

  • フツーにリンク
  • リンク先から HTTP ヘッダの Location でリダイレクト
  • meta http-equiv="refresh" で自動的に移動

これが Javascript の仕様なのか,IE の仕様なのかは知りませんが,いずれにせよサイト管理者にとっては頭の痛い問題かもしれません.個別のユーザに個別の情報を公開している場合は,パスワードを漏らしたユーザが被害を被るだけなのでまだましですが,複数のユーザに共通する情報を提供している場合は特に問題ですね.

実は,このサイトでもそういったページが幾つかあるのです.w3m ではユーザ名が referer に残るってことは知っていたのですが,まさかパスワードまで残る場合があるとは思いませんでした.こうなると,URL にパスワードを含めるのを禁止したほうが良いかもしれません.

しかし,そういう機能がある以上は,禁止したことところで大した強制力をもつわけでもありませんし,サイト側で対処できるならそうしたいものです.デモで試したところでは,「meta http-equiv="refresh"」で移動させた場合では Referer の値が無くなる *3ようなので,しばらくはこれで行きたいと思います.

参考:

*1: アクセスしようとすると,ユーザ名.パスワードの入力を要求される,比較的よく見られるアレです
*2: Basic 認証は平文のパスワードが流れるので,もともと安全では無いが
*3: パスワードだけでなく,値が全く入らない

トラックバック(0)

トラックバックURL: http://d.nym.jp/mt/trackback/1631

コメントする

最近のコメント

アーカイブ

Author

nym <n...@nym.jp>
Powered by Movable Type 5.12