NGhost_check.pl v2.1


★使用目的

掲示板などのCGIプログラムにセキュリティ機能を付加することができます。
アクセス元を解析し、拒否したいアクセスを別ページへ誘導します。
また、付加機能として、特定の言葉(文字列)が含まれている場合に、その部分を置き換えたり、処理を中断するための判定を返すことができます。

★ファイル構成

NGhost_check.pl

上記ファイルを既存のperlプログラムにrequireで読み込ませ、サブルーチンを呼び出します。

★基本設定

組み込みたいCGIにサブルーチン呼出のため、下記1行を追記します。

require 'NGhost_check.pl';

プログラムの動作部分よりも前(1行目にperlの呼出があるので、それ以降)に入れておいてください。

★アクセス拒否機能

【NGhost_check】

アクセスのホストを調べて拒否することができます。任意のドメインまたはIPアドレスを指定することができます。
また、リンク元を調べて身元不明のリンク元を排除することもできます。

呼出方法はサブルーチンを指定するだけです。

&NGhost_check;

【初期設定】

サブルーチン「NGhost_check」内で初期設定をします。

#処理を拒否するホストのリスト
@kill_host = ("","aaaa.com","bbbb.net","cccc.org");

拒否したいドメインまたはIPアドレスを記述します。必ずカンマで区切ることと、文字列を””で囲んでください。
例のように空の文字列を指定することで、アクセス元を隠蔽したアクセスに対処することができます。

#拒否する場合に表示するページ
$skip_page = "http://www.yahoo.com";

アクセス拒否に該当した場合に表示させるページを指定します。

#リンク元のドメインとして許可するリスト
@right_domain = ("zzzz.com","aiueo.co.jp","aiueo.ne.jp");

アクセスを許可するリンク元を指定します。これ以外からのリンクはアクセス拒否します。

★文字列置換機能

【NGhost_check_text】

任意の文字列がデータに含まれている場合に、その部分を指定の文字列に置き換えます。

呼出方法はサブルーチンと判定したいデータが入った変数を指定します。

&NGhost_check_text(*text);

上記例では、$textをサブルーチンに参照渡し(注1)しています。
複数の変数を検査したい場合は、その数だけサブルーチンの呼出が必要です。

(注1)参照渡しとは、データを別の変数へ受け渡すだけでなく、受け取った変数を書き換えると元の変数のデータが書き換わるという仕組みです。メモリを節約するために同じデータを別の変数で共有しています。

★文字列検査機能

【NGhost_check_select】

任意の文字列がデータに含まれている場合に、その判定結果を呼出元のCGIに送り返します。

サブルーチンに判定したいデータの入った変数を参照渡しで指定し、戻ってくる結果をif文で判定して動作を決定します。
文字列の検査で任意の文字列がデータに含まれている場合にTrue(真)となります。(実際の戻り値は「1」)

if(&NGhost_check_select(*text)) {next;}

上記例では、$text内のデータを判定して指定の文字列が見つかればTrueとなり{}内の命令が実行されます。
掲示板で発言を1つ1つ処理する場合、該当する発言を飛ばして次の処理を実行する場合に使用します。
もちろん、検査結果に応じて自由に処理を決定することができます。

★著作権

 秀麗(Shurey)
 http://www.shurey.com/
 [NetGurdianにて配布]
 http://gurdian.ne.jp/
 二次配布、改良による使用も自由にできます。
 ただし、改良を施した場合、新しいreadme.htmlを付けてください。