このスクリプトはCGI-StaTion:httpさんのWeB DoRaMa(Version 1.25+)に、アクセス制限機能など掲示板荒らしに有効だと思われる機能を追加したものです。
再配布にあたって、CGI-StaTionさんのスクリプト利用規定」に準ずるようにしています。
Version 1.01(2000年6月4日作成)
今回のスクリプトは、CGI-StaTionさんのWeB DoRaMaを「対荒らし」機能強化したものに構成し直したものです。
追加した機能は
です。
オリジナルのWeb DoRaMaとのログの互換性はありません。
dorama.cgiを開いて、初期設定を変更します。
まずそれぞれの1行目にある「#!/usr/local/bin/perl」のパスをご自分のサーバーに合わせて下さい。
# ----------------------------------------------------------
# ドラマの管理者(あなた)の情報です。
# ----------------------------------------------------------
$admin_name = '不明'; # あなたの名前(ハンドルネーム)を書きます。
$admin_email = 'mail@your.address'; # あなたのメールアドレスを書きます。
$master = 'password'; # 管理用のパスワード
# 必ず変更して下さい
# ----------------------------------------------------------
# ドラマのカスタマイズ項目です。
# ----------------------------------------------------------
$max = 150; # 登録・表示最大数(あまりに多いと危険)# 書き込み総件数の設定
$view = 5; # 初期画面で表示する数# 1ページに表示する件数の設定
$title = 'WeB DoRaMa'; # タイトル(<TITLE>~</TITLE>のタイトル)
$body = '<BODY TEXT="black" BGCOLOR="#EEDDE0">';
# <BODY>タグの設定
$actors[0] = '誰のセリフ' ; $colors[0] = '' ; # 登場人物と色の設定。
$actors[1] = 'A夫' ; $colors[1] = '#0000FF'; # ' ' の中だけを書き換え、
$actors[2] = 'B子' ; $colors[2] = '#FF0000'; # それ以外の記号は
$actors[3] = 'C助' ; $colors[3] = '#0000FF'; # 絶対に消したりしないこと!
$actors[4] = 'D美' ; $colors[4] = '#FF0000';
$actors[5] = '効果音' ; $colors[5] = '#442222';
$actors[6] = 'ナレーション' ; $colors[6] = '#009900';
# 増やす時は$actor[7]、$colors[7]....と言うように必ず登場人物と色を対にして下さい。
$emb_color = '#FF0000'; # 強調色(主に時刻の色)
$date = "mon/day hour:min"; # year:年 mon:月 day:日 hour:時 min:分 sec:秒
$date_type = 2; # 一桁のとき二桁に修正するか?
# 0:しない 1:する(時分秒) 2:する(全て)
# 秒まで表示する時は"mon/day hour:min:sec"にする。
$ip_check = 0; # IPアドレスの表示 (0:表示しない 1:表示する)
$rh_check = 0; # リモートホストの表示 (0:表示しない 1:表示する)
$gethostaddr = 1; # リモートホストが正しく表示されない場合は、ここを 1 にす
# るとうまく表示されることがあります。
#(ただし、サーバーエラーの原因になることもあります。)
# 初期設定で「1」としましたが、エラー表示になる場合は「0」にして下さい。
# ファイル関連の設定
$cginame = 'dorama.cgi'; # この CGI のファイルの名前
$jcode = './jcode.pl'; # jcode.pl のある場所
$logfile = './dorama.log'; # 記録用ファイル必ず変更して下さい
$lock1 = './dorama1.lock'; # 鍵ファイル(1) 自動生成ファイルなので自分で作る必要はありません
$lock2 = './dorama2.lock'; # 鍵ファイル(2) 自動生成ファイルなので自分で作る必要はありません。
$lock_flag = 1; # 鍵ファイルの 1:使用 0:不使用
# -------------------- # デフォルト画面の上の部分の HTML文
$html_top=<<"_EOF_";
<CENTER><H1><I>WeB DoRaMa</I></H1></CENTER>
<HR>
<CENTER>
小説は事実より奇なり。読みたい人は自分も小説を書きましょう!!
</CENTER>
_EOF_
# ↑ _EOF_ は必須です。
# -------------------- # デフォルト画面の下の部分の HTML文
$html_buttom=<<"_EOF_";
<BLOCKQUOTE><FONT COLOR="#FF0000"><TT>
・ 同じ人物が続けて発言することはできません。<BR>
・ タグを使用したり、<B>全角150字</B>を超えると登録されません。
</FONT></TT></BLOCKQUOTE>
<P>
<SMALL>[<A HREF="$cginame?edit=on">管理用</A>]</SMALL>
<HR>
_EOF_
# ↑ _EOF_ は必須です。
# -------------------- # サンクス画面の部分の HTML文
$html_thanks=<<"_EOF_";
<CENTER><H1><I>WeB DoRaMa</I></H1>
<IMG SRC="dorama.gif"></CENTER><P>
執筆ありがとう!(^o^)<BR>
ゆっくりご覧下さい。見終わったら、<A HREF="../">ここをクリックする</A>ことで前のページに戻ります。<P>
<CENTER><IMG SRC="./dorama.gif"></CENTER>
<P>
_EOF_
# これらのタグは自分の好みで変更して下さい。
## --- 追加設定
# 投稿文の文字数制限 (半角文字での設定ですので、全角は設定の半分と考えて下さい。)
$max_dorame = '300';
# 他サイトから投稿排除する時に指定
$base_url = 'http://'."$ENV{'HTTP_HOST'}$ENV{'SCRIPT_NAME'}";
# リファーラー変数を送らないブラウザーを救済
$browse_check = '1'; # この機能を使う : yes=1 no=0
@browser = ('Windows CE');
# アクセスを禁止するホスト名(いくつでも可)
@kickhost = ('hogehoge.com');
# 「' '」で囲んだホスト名を何個でも設定出来ます。
# またホスト名の一部やIPアドレスでも設定可能です。('proxy'や'198.87.*.*'等)
$same_rtime = '180'; # 同一ホストからの連続投稿制限時間(単位:秒)
$diff_rtime = '150'; # 違うホストからの連続投稿制限時間(単位:秒)
# 同一ホストからの設定は、出来れば180秒(3分)以上に設定する事をお勧めします。
# プロクシー経由のアクセスを制限
# 0:制限なし
# 1:生IPを漏らすプロクシー経由のみ許可
# 2:1の制限+プロクシー経由の疑いがあるホストを制限
# 3:2の制限+生IPを漏らすプロクシーでもその生IP自体がプロクシーらしいホスト(フェイク等)を制限
# 4:3の制限+jpドメインとIPアドレス(ホスト名が逆引き出来ないホスト)以外は制限
# 5:jpドメインとIPアドレス(ホスト名が逆引き出来ないホスト)以外は生IPを漏らすプロクシーでも制限
$proxy_kick = 1;
# プロクシー経由でのアクセス制限をする時に設定します。
# 上記プロクシー経由のアクセス制限時、特別に許可するホスト
@allowproxy = ('127.0.*.*','hoge.catv');
# 「' '」で囲んだホスト名を何個でも設定出来ます。
# プロクシー経由の投稿を制限(設定する数字はアクセス制限と同じです。)
$reg_prx_kick = 2;
# プロクシー経由での投稿制限をする時に設定します。
# 上記プロクシー経由の投稿制限時、特別に許可するホスト
@reg_allowprx = ('127.0.*.*','hoge.catv');
# 「' '」で囲んだホスト名を何個でも設定出来ます。
# //////////////////////////////////////////////////////////
# オプションの設定はここまでです。
# 以下は CGI のプログラムです。
# 書き換えは個人の責任で行って下さい。
# //////////////////////////////////////////////////////////
設定が終わりましたら、サーバーへ転送します。転送したファイルのパーミッション(属性)を変更します。
またディレクトリのアクセス制限が出来ない場合は、ディレクトリに置いたすべてのファイルを覗かれてしまう可能性があります。空のindex.htmlを作成して転送して下さい。
掲示板を置くディレクトリ ---- 707(もしくは777)
dorama.cgi ---- 705(もしくは755)
dorama.log ---- 606(もしくは666)
dorama.gif ---- 604(もしくは644)
jcode.pl ---- 604(もしくは644)
※パーミッションはあなたのサーバーに合わせて変更して下さい。
#---- 例 ----#
()内はfreewebでのパーミッションの例です。
/jjroad/(ホームページディレクトリ)
|
|-- index.html (604)
|
|-- /cgi-bin/(701)(通常は707)
|
|
|-- /dorama/ (701)(通常は707)
|
|-- index.html (600)ダミーファイル(必要時)
|
|-- dorama.cgi (705)
|-- dorama.log (606)
|
|-- dorama.gif (604)
|-- jcode.pl (604)
すべての機能が設定通りに動いているか、確認して下さい。
通常の掲示板と違いゲーム系のスクリプトですので、アクセスログやチェックコード機能を省いて極力簡素化しました。よほどの事がなければこれで充分だと思います。