新ブログバナー

--.--.--スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010.04.05RGTのスパム対策?

先日から部隊のHPにあるメンバーリスト(RGTというCGIをお借りしています)に、
スパムが入り込んでいました。
どうにかならないものかと思って色々と検索はしてみたんですが、
なかなか見つからず、自分でやるしかないと思っていました。

4日は久々に日曜休日、しかも出かける用事がなく絶好の引き篭もり日和。
まずはCGIの基本についてちょっとだけ勉強して、何が必要なのかを把握しました。
いろいろと案は浮かんだんですが、簡単なものとして「合言葉」を設定する事に。

メンバーの登録の際に、個人用パスワードの他に「合言葉」を入れないと、
登録できないようにしました。
以下は自分なりに加えた内容です。(間違いがあるかも?)


===「rgt.cgi」の中===

~~~中略~~~

#//////////////////////////////////////////////////
#フォーム入力値確認
#登録/変更フォーム共通
sub form_check
{
# 必須項目
if ($in{'name'} eq '') { &error("未入力です($rgtskin::name{'name'})") }
if ($in{'aikotoba'} ne "$aikotoba") { &error("合い言葉が正しくありません。"); }

# スキン項目
my @menu;
my $flag;
my ($start, $end, $ope, $inc);

~~~中略~~~


===「config.cgi」の中===

~~~中略~~~

#管理者パスワード(必ず変更すること)
# 英数字8文字内
$admin_pwd = '****';
$aikotoba = 'メンバー間の合言葉';

#登録権限
# 0 = 自由に登録できる
# 1 = 登録に管理者パスが必要
$reg_type = 0;

~~~中略~~~


===「reg.html」の中===

~~~中略~~~

<tr>
<td align="right" nowrap>パスワード *
<td align="left" colspan="2">
<input type="password" class="pass_box" maxlength="8" name="pwd">
<span style="font-size:80%">(半角8文字以内で決めてください)

<tr>
<td align="right" nowrap>合言葉 *
<td align="left"> <input type="text" name="aikotoba" size="10">
</tr>


~~~中略~~~

いじったのは「rgt.cgi」、「CONFIG.CGI」、「reg.html」3つ。
ベースにしたのはマビノギのスキンなので、reg.htmlの中は違うかも。
そのreg.htmlのタグは先頭の<だけ全角(表示の都合上)にしています。
これでなんとかスパムの登録が止まればよいけど、また続くようなら次は
URLの書き込み禁止を入れなくてはいけないのかもしれません。
もし同じお悩みの方がいらっしゃったら試してみて下さい。
Secret

TrackBackURL
→http://hasenritte.blog85.fc2.com/tb.php/473-905b2109
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。