2007年になって、運営側でいくつかの対策がなされスパムは激減しました。URL書込みや海外ホストから書込みが原則禁止になったりとか、なかでもでかいのはOTDサーバ上のフォームからの投稿しか受け付けなくなった(なので以前書いた対策をとると書きこみできなくなったり)ことでしょう。
それでも http://otd2.jbbs.livedoor.jp/*****/bbs_post とかを巡回するようなボットはそんなに難しくはなさそうなので、投稿ページ用のbody部分は半角スペースで無効化しとくほうが無難。ぼくはそれに加えて普段表示する形式以外の表示形式から投稿フォームを消し去ってみたけどこれがどれくらい効果があるのかは不明。とりあえず2007年に入ってからスパムは来てない。(2007-06)
!$email{!url{出力部分のソース}}
という風に囲む。メール項目とURL項目のどちらかでも入力してあると投稿が表示されない。ただし、過去の投稿で真っ当にメールやURLが書き込まれているものももろとも表示不可にしてしまう。!$etc1{etc8{出力部分のソース}}
これはetc1に入力がなくて、なおかつetc8に入力があるときだけ投稿を出力する。書込みフォームには必須項目としてetc8の入力欄のみ用意する。これをいきなり導入すると過去の投稿は根こそぎ非表示になりかねない。これもやってない。URLとメールを書きこんできた投稿を非表示にする、書込みフォームを別サーバに置く形の掲示板。要するに今うちでうごいてるやつに汎用性を持たせた感じ。まあいないと思いますが使いたい方は適当にコピペして持ってってください。レイアウトなんかはみんなスタイルシートなので、使わないとシンプルでクールな感じになります。
1ページの表示件数、過去ログの表示件数を多めにしておかないと、業者爆撃を消した後に何も残らなくなったりする。(程度の問題で100発近く書き込まれれば結局表示されなくなるのだけど)うちは100件表示にしてある。本文の量が多かったりすると転送してくれなくなることがあるらしいが、さしあたり問題はおきていない。
※文字コードを変更する際は「<head> 〜 </head> タグに挟まれる内容」内のmetaタグのコード指定も変更してください。
ということです。どれでもいいのだけど、ぼくが2005年までたまに使ってたWannabeに優しい仕様ということでとりあえずsjisにチェック。
<!--文字コードの設定がsjis以外ならばcharset=以降の箇所を書き換える-->
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<mata http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet"
type="text/css" href="<!--スタイルシートのURL-->">
<!--掲示板のタイトル-->
<title>掲示板</title>
<!--スタイルシートで記述してあるのでこちらには何も書かない-->
<h1><!--掲示板タイトル--></h1>
<hr>
<div id="menu">
<dl>
<dt><a href="<!--ホームページのURL-->">
ホームページへ</a></dt>
<dd><a href="http://bbs.otd.co.jp/make/rules.html">
利用規約</a></dd>
<dd><a href="<!--書込みフォームへのURL-->">
書込みフォーム</a></dd>
<dt>表示形式</dt>
<dd><a href="bbs_plain$args">Plain</a></dd>
<dd><a href="bbs_tree$args">Tree</a></dd>
<dd><a href="bbs_index$args">Index</a></dd>
<dd><a href="bbs_thread$args">Thread</a></dd>
<dt>管理用</dt>
<dd>
<a href="http://sec01.otd.livedoor.com/mypage/index.php?g_p=PROFILE.check">
ログイン</a></dd>
<dt>削除フォーム</dt>
<dd><form action="bbs_delete" method="post">
<ul>
<li>記事番号<input type="text"
size="6" name="seq"></li>
<li>削除キー<input type="text"
size="6" name="key"></li>
<li><input type="submit" value="削除"></li>
</ul>
</form></dd>
<dt>過去ログ</dt>
<dd>$log</dd>
</dl>
<address>
<a href="mailto:<!--メールアドレス-->">管理人へメール</a></address>
</div>
<hr>
$board
<hr>
<!--管理者投稿をするのならなにも記述しない。
管理者投稿をしないなら半角スペースを1個いれておく。
が、フォーム収集ロボットの存在を想定すると
管理者投稿を犠牲にしても半角スペースをぶち込んで無効にしておくほうがいいかも-->
<h1>$subject</h1>
<hr>
<div id="menu">
<dl>
<dt><a href="<!--ホームページのURL-->">
ホームページへ</a></dt>
<dd><a href="http://bbs.otd.co.jp/make/rules.html">
利用規約</a></dd>
<dd><a href="<!--書込みフォームへのURL-->">
書込みフォーム</a></dd>
<dt>表示形式</dt>
<dd><a href="bbs_plain">Plain</a></dd>
<dd><a href="bbs_tree">Tree</a></dd>
<dd><a href="bbs_index">Index</a></dd>
<dd><a href="bbs_thread">Thread</a></dd>
<dt>管理用</dt>
<dd>
<a href="http://sec01.otd.livedoor.com/mypage/index.php?g_p=PROFILE.check">
ログイン</a></dd>
</dl>
<address>
<a href="mailto:<!--メールアドレス-->">管理人へメール</a></address>
</div>
<hr>
<div id="body">
<dl>$board</dl>
<hr>
<form action="bbs_write" method="post">
$hidden
<dl>
<dt><input type="hidden" name="referer" value="bbs_tree"></dt>
<dt>名前(必須)</dt>
<dd><input type="text" name="handle" size="80"></dd>
<dt>件名(必須)</dt>
<dd><input type="text" name="subject" size="80" value="$subject"></dd>
<dt>本文(自動改行します。タグは使えません)</dt>
<dd><textarea name="message" cols="80" rows="10">$message</textarea></dd>
<dt>削除キー(半角数字4桁)<input type="text" name="key" size="6">
<input type="submit" value="上記内容で書き込む" onclick="set_cookies();"></dt>
</dl>
</form>
<script src="<!--JavaScriptへのURL-->"></script>
</div>
$begin{<dl id="body">}
$!url{$!email{
<dt class="title">
<span class="no">[$seq]</span>
<span class="subject">$subject</span>
<span class="name">投稿者:$handle</span>
</dt>
<dd class="text">$message</dd>
<dd class="date">
<span class="time">$time</span>
<a href="bbs_reply?reply=$seq">返信</a>
</dd>
}
}
$end{</dl>
$prevbase{<a href=$what$prevbase>前</a>←}
$nextbase{→<a href=$what$nextbase>後</a>}
}
$begin{<dl id="body">}
$!url{$!email{
$top{
<dt class="title">
<span class="no">[$seq]</span>
<span class="subject">$subject</span>
<span class="name">投稿者:$handle</span>
</dt>
<dd class="text">$message</dd>
<dd class="date">
<span class="time">$time</span>
<a href="bbs_reply?reply=$seq">返信</a></dd>
<dd><dl>
}
$!top{
<dt class="title">
<span class="no">[$seq]</span>
<span class="subject">$subject</span>
<span class="name">投稿者:$handle</span>
</dt>
<dd class="text">$message</dd>
<dd class="date">
<span class="time">$time</span>
<a href="bbs_reply?reply=$seq">返信</a>
</dd>
}
$bottom{
</dl></dd>
}
}
}
$end{</dl>
$prevbase{<a href=$what$prevbase>前</a>←}
$nextbase{→<a href=$what$nextbase>後</a>}
}
$begin{
<dl id="body" class="list"><dt class="title">タイトル一覧</dt>
}
$!url{$!email{
<dd>
<span class="no">[$seq]</span>
<span class="time">$time</span>
<span class="subject">
<a href="bbs_plain?base=$seq&range=1">$subject</a></span>
<span class="name">投稿者:$handle</span>
</dd>
}
}
$end{</dl>
$prevbase{<a href=$what$prevbase>前</a>←}
$nextbase{→<a href=$what$nextbase>後</a>}
}
$begin{
<dl id="body" class="list"><dt class="title">スレッド一覧</dt>
}
$!url{$!email{
$top{
<dt>
<span class="no">[<a href="bbs_tree?base=$seq&range=1">$seq</a>]</span>
<span class="time">$time</span>
<span class="subject"><a href="bbs_plain?base=$seq&range=1">$subject</a></span>
<span class="name">$handle</span>
</dt>
}
$reply{
<dd>
<span class="no">[$seq]</span>
<span class="time">$time</span>
<span class="subject"><a href="bbs_plain?base=$seq&range=1">$subject</a></span>
<span class="name">$handle</span>
</dd>
}
}
}
$end{</dl>
$prevbase{<a href=$what$prevbase>前</a>←}
$nextbase{→<a href=$what$nextbase>後</a>}
}
<em></em>