特定ホストからのアクセスを禁止したり、または特定ホストからアクセスのみを許可したりとアクセスを制限する方法について説明します。ホスト(host)とは、ネットワークを利用しているコンピュータのことで、それぞれのコンピュータの通信は識別できるように IPアドレス(数字の羅列で構成)やドメイン(アルファベットと数字、一部が記号で構成)が割り当てられており、この IPアドレスやドメインを指定してアクセス制限を行います。
ウェブサイトを運営していると宣伝や誹謗、中傷などの迷惑行為に遭遇することがあるかもしれません。そのような場合に迷惑行為を行ったホストからのアクセスを禁止して対処することができます。また、特定ホストからのアクセスだけを許可することで仲間内だけで情報のやりとりを行いたい場合等にも利用できます。
説明に入る前に、これから紹介するアクセス制限の方法はあくまでも一時的な効果しか期待できなかったり、無関係の第三者にまで影響が及んでしまうことがあるので注意してください。たとえば、IPアドレスであれば下数桁の部分は接続の度に変わることが多いため、IPアドレスの最初の5-6桁の部分は変わらなかったりしても、またドメイン名で特定のプロバイダーのアクセスを制限しても、迷惑行為を行ったものとは無関係の第三者が同じ IPアドレスやプロバイダーでアクセスしてきた場合には無関係の第三者までも締め出してしまうことになりかねません。また、ユーザーの中にはプロキシ経由で毎回ホストを変えてアクセスしてくるなど対処が困難な場合があります。
迷惑行為に困り果ててどうしようもないという場合は、閉塞的な形になりますがユーザー認証を採用するのも方法のひとつです。認証とは ID(ユーザー名)とパスワードによる照合を行う会員制(メンバー制)にする方法です。これを .htaccess で実現するのには Basic認証が最もよく利用されています。仲間内だけで情報のやりとりを行う場合にも、特定ホストだけがアクセスできるような形態をとるよりも、Basic認証を利用した方が管理・保守面においても適しているでしょう。
order allow,deny allow from all deny from xxx.or.jp deny from 255.255.255.0
1行目の orderディレクティブは、アクセスの許可(allow)・禁止(deny)の評価の順番を決定するものです。上の例では、allow,deny と allow を deny の先に記述しているので、2行目の allow from all の allowディレクティブの内容が先に評価され、全てのホストからのアクセスを許可しています。そして、3行目(4行目)に deny from ドメイン名、または deny from IPアドレス の形で denyディレクティブによってアクセスを拒否するホストを指定します。この設定により特定ホストからのアクセスのみを禁止することができます。
order deny,allow deny from all allow from xxx.or.jp allow from 255.255.255.0
今度は逆です。1行目の orderディレクティブは、アクセスの許可(allow)・禁止(deny)の評価の順番を決定するものですが、こちらは deny,allow と deny を allow の先に記述しているので、2行目の deny from all の denyディレクティブの内容が先に評価され、まず全てのホストのアクセスを禁止しています。そして、3行目(4行目)に allow from ドメイン名、または allow from IPアドレスの形で allowディレクティブによってアクセスを許可するホストを指定します。この設定により特定ホストからのアクセスのみを許可することができます。
特定ホストからのアクセスを禁止する deny from、または特定ホストからのアクセスを許可する allow from に続いて指定する指示子について説明します。下記のように書き方によって制限の範囲が異なるので注意してください。
255.255.255.0255.255.255.0 の IPアドレスをもつコンピュータのみが対象となる255.255.255255.255.255.0 から 255.255.255.255 までの範囲の IPアドレスをもつコンピュータが対象となる.u-tokyo.ac.jp.u-tokyo.ac.jp のドメインが付くコンピュータのみが対象となる.ac.jp