まちビねっと1 名前: まちビねっと 更新日: 2003/04/19(Sat) 18:36
TIPS ".htaccess" ちょっとしたサイト作りのポイントです。


※注意※ このページの記述が全てだとは思わないでください。
このページは Pir! の知っていることを書いています。
また、まちビねっとサーバーで実験していますので、
他のサーバーでは正常に動作しないことがあります。
より強固なセキュリティ対策を行いたいときは、
他のサイトの情報や技術書などを読まれることをお勧めします。

※注意※ Windows や FTP, テキストエディタなどの
使い方を知っているものとして解説します。

FTP ソフトやテキストエディタまで説明する余裕がないので、割愛させて頂きます。
あと、Mac の操作方法は、手元に Mac がないため、と勝手に理由付けさせて頂きます。
申し訳ないです。。。


.htaccess とは

一つのセキュリティ設定ファイルです。
サーバー管理者でなくても、ユーザー自身がサーバーの特定のディレクトリ(フォルダ)に
アクセス制限などのセキュリティ設定を行うためのファイルです。
WWW サーバー自身が処理を行うため、
WWW サーバー自信にセキュリティホールが無い限り、強力なセキュリティになると思います。

一つ .htaccess を置くと、その下のディレクトリ全てに適用されます。
上のディレクトリは設定していたけれど、その下にあるディレクトリを設定していなかった、
なんて事にはなりません。

どんなことができるのか?
まず、.htaccess ファイルを作成する。
ディレクトリの一覧を許可・禁止する。
SSI を許可する。
特定のファイル・ディレクトリのアクセスを禁止する。
特定のホストからのアクセスを禁止する。

特定のファイル・ディレクトリへアクセスするためのパスワードを設定する。


まず、.htaccess ファイルを作成する。

Windows ではいきなり .htaccess ファイルを作成できません。

Windows では . (ピリオド)で始まるファイル名は作成できないことになっています。
なので、まずは .htaccess.txtを作り、その後に .htaccess にリネームします。
リネームは、MSDOS プロンプト(またはコマンドプロンプト)を開き、
  ren D:\Databank\HP\machibbs\.htaccess.txt D:\Databank\HP\machibbs\.htaccess
下線の付いているところは .htaccess を作ったフォルダを指定してください。
個人の環境によって違います。
そして、テキストエディタで .htaccess を開いて、編集します。

ディレクトリの一覧を許可・禁止する

Options Indexes

表示を許可するときは、
  Options Indexes
表示を禁止するときは、
  Options -Indexes
と記述します。
【メモ】 - (ハイフン)を付けると Indexes という機能を抑制するという意味になります。

概要

まちビねっとサーバーは標準では表示を許可しています。
ただし、表示したままだと、ファイルの一覧が表示されてしまい、
CGI のデータファイルや設定ファイルが他者によってのぞき見される可能性があります。
これを防ぐには index.html ファイルをそのディレクトリに置く方法と、
.htaccess でディレクトリ一覧の表示を抑制する方法の 2 つがあります。
.htaccess で抑制した場合、http://machibbs.net/test/ のように、
ファイル名を指定せずアクセスしたとき、
index.html が見つかった場合は index.html を表示し、
見つからなかった場合は、403 (表示拒否)エラーを表示します。

このディレクトリは表示を許可していません。
 http://pir.jamfunk.net/image/
.htaccess に Options -Indexes を記述しています。
このディレクトリは表示を許可しています。
 http://pir.jamfunk.net/mirror/
.htaccess に Options Indexes を記述しています。
まちビねっとサーバーはアカウントが発行された時点では
Options -Indexes が記述された .htaccess ファイルを設置しています。

SSI を許可する

概要

SSI (Server Side Include) 機能は、サーバー側で
指定した HTML を埋め込んだり、更新日時を埋め込んだりする機能です。
たとえば、HTML に
  <!--#include virtual="header.htm" -->
と書けば、サーバーが勝手にその部分に header.htm を読み込んで書き加えてくれます。
通常、SSI が行われるファイルは .shtml のみですが、
他の拡張子のファイルでも SSI を行いたければ、AddHandler を記述してください。

拡張子 .htm のファイルの SSI を許可するときは、
  AddHandler server-parsed .htm
と記述します。

SSI 命令一覧(一部)

ファイルを埋め込む <!--#include file="ファイル名" -->
ファイルの更新日時を埋め込む <!--#flastmod file="ファイル名" -->
CGI の出力を埋め込む <!--#exec cgi="CGIファイル名" -->
その他に、ファイルサイズを埋め込んだり、日時の表示形式を変える命令などがあります。
ちなみにまちビねっとサイトでは各ページの更新日時表示に SSI を使ってます。

特定のファイル・ディレクトリのアクセスを禁止する。
特定のホストからのアクセスを禁止する。

概要

例えば、CGI などでプライバシーを含むデータを集めて、
そのデータファイルを見られたくない場合、
特定のプロバイダやホストからの悪質ないたずらが絶えない場合、
ホームページ管理者しか見れないようにしたい場合、
このような場合は、「特定のホストのみ閲覧を許可する」設定を行います。

#指定したホストだけ許可する
order deny,allow #拒否→許可の順番に指定することを明示
deny from all #とりあえず、全部拒否する
allow from machibbs.net #machibbs.net を許可する
allow from machibbs.com #machibbs.com を許可する
#指定したホストだけ拒否
order allow,deny #拒否→許可の順番に指定することを明示
allow from all #とりあえず、全部許可する
deny from machibbs.net #machibbs.net を拒否する
deny from machibbs.com #machibbs.com を拒否する
#指定したファイルだけ制限をかける
<Files logfile.dat> #logfile.dat に対して制限をかける
#ここに制限の条件を書く
</Files>
order 命令は、deny(拒否)を先に指定するか、allow(許可)を先に指定するかを指定します。
これを書かないと、deny を優先するか、allow を優先するか、区別できなくなります。

deny from と allow from 命令は、その後にホスト名を記述しますが、
machibbs.net と書けば、rina.machibbs.net も規制対象になることに注意してください。
つまり、.net と書いてしまうと、bbtec.net (Yahoo!BB) も規制対象になります。
また、ネットマスクも記述できます。

<Files> は <Files> から </Files> までの間に order, deny, allow などの命令を書きます。
また、正規表現でファイル名を指定することができます。

いずれも、.htaccess を置いたディレクトリより下のディレクトリでは、
すべてその設定が適用されることに注意してください。
下のディレクトリで規制を取り消したい場合は、
allow from all をもう一度、記述してください。

特定のファイル・ディレクトリへアクセスするためのパスワードを設定する。

概要

特定のメンバーだけに公開したいとき、会員制のページを作りたいときなどは、
パスワード認証をつけることもできます。

#まず、以下を .htaccess に記述します。
AuthUserFile /絶対パス/.htpasswd #.htpasswd ファイルの絶対パスを指定してください。
#絶対パスはまちビねっとの場合、/home/ユーザー名/public_html/ となるはずです。
AuthGroupFile /dev/null #通常は /dev/null のままです。
AuthName "パスワードを入力してください" #ここは認証画面のタイトルになります。
AuthType Basic #通常は Basic のままです。
さらに、.htpasswd ファイルに
 ユーザー名:暗号化パスワード
を記述します。
このとき、ユーザー名はアカウントのユーザー名ではなく、
会員のユーザー名であることに注意してください。
また、暗号化パスワードは htpasswd コマンドで作成します。
パスワードをそのまま記述しても動作しません。
htpasswd の暗号化パスワードの作り方
本来は TELNET で htpasswd コマンドを使って .htpasswd ファイルを作成しますが、
まちビねっとサーバーでは TELNET を使うことができないので htpasswd コマンドを使えません。
そこで htpasswd の暗号化パスワードを生成するツールを設置していますので、
そちらを使ってください。(LEV-HtPasswd
フォルダ名は特に指定しなくても良いですが、入力しないと動作しませんので、
/home と入力しておきます。
暗号化タイプは Crypt のままにしておきます。
ユーザー名とパスワードを入力して実行を押すと、処理結果のボックスが表示されます。
そこに ユーザー名:暗号化パスワード が表示されていますので、
それをそのまま .htpasswd ファイルにコピーしてください。

copyright (c) 2003 Pir! / Studio JamPack all rights reserved.