アクセス制限

見られたくないページを見られないようにするには

  • 見られたくないページを閲覧不可にする
robots.txt
  • robots.txt」を置き、検索の対象から外す
認証を使う

見られたくないディレクトリを閲覧不可にする

  • サイトのルートディレクトリに「index.html」が存在しない場合は、ディレクトリ内の一覧が表示されてしまいます。 (セキュリティ上も問題あり)
ダミーのindex.htmlを置く
  • ディレクトリ名が指定された際に表示されるファイルが index.html なら、 本来のトップページは別のファイル名にしておいて、ダミーの index.html ファイルを置いておく


そうすれば、少なくとも robots.txt を見ただけでは閲覧されたくないページにはアクセスできません


.htaccess」ファイルを使う

特にトップページのようなものが存在しない場合は、 ディレクトリ内の一覧が表示されてしまいます。



《サーバがApacheだった場合 》
.htaccessファイルを使って、ファイル中に



 Options -Indexes

と記述しておけば、ディレクトリ内のファイル一覧が表示されるのを防げます。 ブラウザには、403 Forbidden のエラーメッセージが表示されます。


robots.txtで指定したディレクトリ以下は見せない

例えば、次のようなディレクトリ構造だったとします。


  


「private 」と「work」の2つのディレクトリを秘密にしておきたいとすると、robots.txt には、次のように記述することになります。



 User-Agent: *
 Disallow: /private/
 Disallow: /work/


これだと「private 」と「work」がディレクトリが存在することが分かってしまいます。


そこで、ディレクトリ構造を、次のように変えます。


  


これなら「secrets」ディレクトリだけを隠せば良いので、robots.txt は、次のようになります。



 User-Agent: *
 Disallow: /secrets/


secrets ディレクトリには、ダミーの index.html ファイルを置いておくなどして、ディレクトリの中身が見えないようにしておきます。


.htaccessを使ったアクセス制限方法(基本認証)

限定した人々にのみ公開したいコーナーを作りたいときなど、 IDとパスワードを使ってアクセス制限を行います。

基本認証(BASIC認証)とは

基本認証が施されているページへブラウザでアクセスしようとすると、下図のような認証ダイアログが表示され、IDとパスワードの入力が求められます。


  


ただ1つのIDとパスワードだけを用意しておいて、全員共通のアカウントとして運用することも可能です。
基本認証では、ページ単位ではなくディレクトリ単位にアクセス制限を施すことになります。
ですから、制限を施したディレクトリ内のどのURLを直接指定してアクセスした場合でも、認証ダイアログが表示されます。
IDとパスワードの入力を避けてアクセスすることはできません。


基本認証を施す手順

.htaccess」ファイルを作る
  • サーバの設定ファイルである「.htaccess」ファイルを作ります
  • このファイルは、ただのテキストファイルですので、一般的なテキストエディタを使って作成できます
  • アップロード後に、リモート上で「.htaccess」というファイル名に変更します
.htaccessファイルの中身

.htaccess」ファイルの中には、次のように記述します。



AuthUserFile /Applications/MAMP/htdocs/フォルダー名/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user


■AuthName
何でも好きな文字を記述して構いません。


  


実際には、図の赤丸で囲った部分などに表示されます。
(※日本語文字列を使うと、Internet Explorer以外のブラウザでは文字化けしてしまいます。半角英数記号のみ使いましょう。)



■AuthUserFile
「IDとパスワードを格納したファイル」の格納場所をルートパスで記述します。
とりあえず、「.htaccess」ファイルを置くディレクトリと同じ位置に passwd.dat というファイル名で置くと仮定して記述しておけば良いでしょう。
※実際に使う際には、ウェブ上からはアクセスできない位置に置くのが望ましいです。


.htaccess」ファイルの保存

中身を記述できたら「.htaccess」ファイルを保存します。
このとき、ファイル名は「 .htaccess 」とします。
先頭に半角ドット記号がある点を忘れないようにして下さい。


ただし、環境によってはファイル名をドット記号から始めることができません。
その場合は、一旦「 htaccess.txt 」というようなファイル名にして保存し、 サーバにアップロードする際に、「.htaccess 」に名前を変更して下さい。


.htaccess」ファイルの配置

この「.htaccess」ファイルは、認証を施したいディレクトリにアップロードします。
認証の対象は、そのディレクトリ以下のサブディレクトリにも及びます。


もし、自分のウェブサイトのトップページ(index.htmlなど)が存在するディレクトリにこの.htaccessファイルを置けば、ウェブサイト全体がまるごと認証の対象になります。 (URLを指定して途中のどんなページに直接アクセスしようとしても、必ず認証を経なければ何も表示されなくなります。)


IDとパスワードを格納したファイルを作る

.htaccess」ファイル内の「AuthUserFile」項目で指定したファイル(=IDとパスワードを格納したファイル)を作成します。


このファイルは、1アカウント1行で構成されていて、



ID名:暗号化されたパスワード


という形式になっています。 パスワードは暗号化されていますので、直接ファイルの中身を閲覧しても、オリジナルのパスワードは分かりません。



 suzuki:XkB8Ou3kAcODe
 yamada:5dHw0u9s4TltI
 sato:A0e7PvhEdWyvE


上記のサンプルでは、suzuki, yamada, sato の3つのIDが格納されています。
これは暗号化されたパスワードです。
※「XkB8Ou3kAcODe」のような文字列はパスワードを暗号化したものであって、「XkB8Ou3kAcODe」というパスワードなのではありません。


実際にファイルを作成するには

この「IDとパスワードを格納したファイル」を作るには、htpasswd というコマンドを使います。
このファイル自体はテキストファイルですが、パスワードを暗号化しなければなりませんのでテキストエディタではなくコマンドを使って作ります。


ウェブ上で簡単に作成できるサービス


ローカルでのBasic認証

MAMP
  • .htaccess」をDreamweaver上で作成(MacUnixのため、Finder上では見えません。)
  • 配置場所は、サイト管理のroot階層

記述内容

  • 最終行の改行も含める
AuthUserFile /Applications/MAMP/htdocs/フォルダー名/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user


  • 「.htpasswd」を作成し、「暗号化されたパスワード」を記述します
  • .htaccess」と同じ階層におきます
  • OSを再起動しないと認証されないので注意しましょう