CGI− 1.手軽にアクセス制限機能を追加する

 当ページの荒らしについて考えようと言うコーナーもある通り、昨今、掲示板だけでなく、他のCGIコンテンツが荒らされつつあります。でも、やはり掲示板荒らしの数が一番多いと言えるでしょう。その中でも、お絵かき掲示板の荒らしが一番多いと、私は思います。実際、大規模な荒らしに遭い、一時閉鎖していました。

 さて、話を本題に持っていきましょう。荒らし対策としてよく用いられるのが、アクセス制限機能です。これは、特定のIPアドレスリモートホスト(発信元)から来ている人のアクセスを拒否してしまうんです。
 最近のCGIスクリプトには、この機能が付いていることが多いです。しかし、お絵かき掲示板など、アクセス制限機能が付いていないものも多いです。

 そこで、私は、「アクセス制限機能を他のCGIに追加できないのだろうか?」と思い、色々と調べてみたところ・・・その方法を見つけたんです。実際、当ページのお絵かき掲示板にも、その機能は埋め込まれています。
 そこで、今回はその方法をご紹介しようと思います。

その前に・・・
注意(重要):Tipsというコーナー名の通り、これはほぼ裏ワザに近いです。
      また、これは
CGIの改造なので、失敗しても当方は一切責任を負いかねます
      その点を踏まえた上で、この改造を試みて下さい。

 

方法
 以下のテーブル内のものを、アクセス制限機能を追加したいCGIの中に挿入して下さい。
(挿入する場所は、そのCGIの、著作権情報の下の部分がいいと思います。エラー防止のため、Perlのパス部分に書くのはやめて下さいね)

# アクセス制限
# '' へ制限したいホスト名及びIPアドレスを記述、,でつなげば、いくらでも増やせます。)

@limit = ( '*.proxy.hoge.ac.jp', '*.hoge.ne.jp', '210.255.119.*' );
foreach ( @limit ) {
if ( $host =~ /$_/ || $ip =~ /$_/ ) { &error( 18 ); }
}

解説
 ・最初の2行(紺色の部分)は、無くても問題ありません。
 ・カッコ内(明るい紫色の部分)に、制限したいホスト名及びIPアドレスを書いて下さい。
 ・ホスト名及びIPアドレスは''で囲み、,(カンマ)でつなげば、いくらでも増やせます。

注意
 ・空白(''間に何も描いていない物)は作らないで下さい。やってみると分かりますが、自分を含む、全ての人のアクセスを拒否します。未公開状態としたいCGIにでも使って下さい(笑)。

 

 〜おまけ〜
 CGIに上の文章を張り付けたらエラーが起きた、もっと簡単・確実にアクセス制限の対象とするホストの管理をしたい、もっと色々なセキュリティ機能を追加したいとおっしゃる方は、CGIROOMにある“アクセスチェック”等のCGI機能拡張をご利用下さい。
 尚、こちらの使い方は、CGIROOMの方をご覧下さい。

戻る