Search This Blog

2016/10/15

.htaccessファイルでBASIC認証のメリットとデメリット

.htaccessファイルは何ですか

Apacheを用いたWebサーバにおいて、ディレクトリ単位で設置及び設定を行える設定ファイル(アクセス制御ファイル)として.htaccessファイルがあります。サーバ起動時に読み込まれる設定ファイルである.htaccessはサーバにリクエストがあるたびに毎回検索されて設定が読み込まれるファイルです。

httpd.confの設定によってはアクセス制御用ファイル名を変更することも可能です。但し、一般的には.htaccessで使用します。Webサーバの管理者でないと設定を変更することができないですが、httpd.confで.htaccessの利用を許可している場合、Webサーバ管理者のみならずウェブサイトの管理者レベルでApacheの一部設定を行えるようにできます。

.htaccessでBASIC認証のメリットとデメリット

.htaccessは格納すればすぐに適用されるため、サーバーを再起動する必要がありません。これはサーバーにアクセスされるたびにサーバが.htaccessをルートから検索していくためです。信頼できるIPなどをアクセスする際、.htaccessでBASIC認証することが多いです。例えば、社内ネットワークの場合。

一般的に、.htaccess ファイルの使用は極力避けることを勧められます。

原因の一つ目はサーバの性能の問題です。
サーバにアクセスされるたびに検索されるので、サーバーパフォーマンスが低下します。さらに、Apache は適用すべきディレクティブを集めるために、すべての 上位ディレクトリの .htaccess ファイルを探す必要があります。それぞれのファイルへのアクセスに対して、まったく存在しないときでも、追加のファイルシステムの アクセスが行なわれることになります。

原因の二つ目はセキュリティです。ユーザにサーバの設定を変更することを許可することになりますので、サイト管理員が管理できない変更をされる恐れがあります。
Basic認証はユーザ名とパスワードをBase64でエンコードして送信するため、盗聴や改竄が簡単です。盗聴や改竄を防ぐために、Digest認証がユーザ名とパスワードをMD5でハッシュ(ダイジェスト)化して送るのを考案されましたが、Digest認証の安全性はそれほど高くないです。


よくある誤解:ユーザ認証は常に.htaccess ファイルで行なわなければならないこと。
ユーザ認証の設定はサーバ主設定ファイルhttpd.conf書くことができます。Apache の起動時に 1 回だけ読み込むため、性能も良くなります。

まとめ

使うべきの場合:
  1. サーバ主設定ファイルにアクセスできない時。
使わないべきの場合:
  1. サーバ主設定ファイルにアクセスできる時
  2. サーバの性能を気になる時
  3. 信頼できないアスセスがある時

No comments:

︿
Top