.htaccess活用法(2).htaccess(拡張子がhtaccessということで、ドットが必要です。ファイル名がないので最初戸惑いますが、こういうものだと思ってください。)が利用可能だと、
2.特定のホスト(IPアドレス。プロバイダ)からのアクセスを制限する先ほど紹介したBasic認証もしくはDigest認証はIDとパスワードによる認証及びアクセス制限でしたが、他にもアクセス制限の方法はあります。例えば、掲示板管理のための一般的な方法として、特定のホスト(IPアドレス。プロバイダ)からのアクセスを制限するという手法が取られます。掲示板には、誹謗中傷の類の書き込みを繰り返す「荒らし」と呼ばれる行為や、意味不明な書き込み、ネットワークビジネスの勧誘的な書き込み、また、相手を挑発するような書き込みなどで、荒れる場合があります。そのような場合に、そのような行為に加担する人のアクセスを拒否したい場合が出てきます。この場合に、会員制(メンバー制)の掲示板であれば、それこそ.htaccessなどでIDとパスワードによる照合が可能ですから、該当会員のデータを消せば入室できなくなります。
これは、.htaccessで可能です。その拒否したいアクセスのIPアドレスが123.45.67.89ならば、書き方は次のような感じです。
allow from all deny from 123.45.67.89 言わずもがなですが、「allow = 許可する」「deny = 否定する」です。特定のホストからのアクセスを拒否する(それ以外はOKとする場合)、「order allow,deny」とした上で、一旦、「allow from all = 全てのアクセスを許可する」とし、拒否するIPアドレスなどを列挙します。一行目の「order allow,deny」は、先にallowを指定して、次にdenyを指定するというアクセス制御の評価順序を宣誓するためのものです。 ただし、IPアドレスは接続のたびに変わることが多いので、ある時は「123.45.67.89」でも、また別の時には「123.45.87.69」かもしれません。ですが、仮に「123.45」の部分は変わらないとすれば、
allow from all deny from 123.45. とします。 また、逆に、特定のホストからの接続のみを許可する場合には、
deny from all allow from 123.45.67.89 などとします。「order deny,allow」と「deny」と「allow」の順番が逆になったことに注目してください。 もちろん、IPアドレスではなく、ホスト名もしくはその一部(プロバイダ名やそのアクセスポイントなどが記されています)を指定することも可能です。
allow from all deny from hogehoge.example.com のような感じです。 ただ、このように.htaccessを利用して、ホスト名でアクセス制限を書く場合、どうしても「無実の第三者」を締め出してしまう可能性もあります。アクセスを制限したい特定のプロバイダが大手のプロバイダであった場合、そのプロバイダを利用している人全てが拒否されたりすることもあるかもしれません。ですので、利用法を熟慮すべきです。 また、proxy接続などで毎回接続ホストを変えてアクセスされた場合などは、対処が難しいです。
次章では、「.htaccessを使った、参照元(Referer)によるアクセス制限」について考えます。画像ファイルなどを直リンクされたくないという場合に有効です。 |