OTDあれこれ

Mなやつ 管理人 JR
[ 目次 ][ リンク ][ 掲示板 ]

レンタル掲示板OTD

追記

2007年になって、運営側でいくつかの対策がなされスパムは激減しました。URL書込みや海外ホストから書込みが原則禁止になったりとか、なかでもでかいのはOTDサーバ上のフォームからの投稿しか受け付けなくなった(なので以前書いた対策をとると書きこみできなくなったり)ことでしょう。

それでも http://otd2.jbbs.livedoor.jp/*****/bbs_post とかを巡回するようなボットはそんなに難しくはなさそうなので、投稿ページ用のbody部分は半角スペースで無効化しとくほうが無難。ぼくはそれに加えて普段表示する形式以外の表示形式から投稿フォームを消し去ってみたけどこれがどれくらい効果があるのかは不明。とりあえず2007年に入ってからスパムは来てない。(2007-06)

経緯(以下は2006年以前の古い情報です)

掲示板の仕様

スパム対策

業者手口

対抗策

容赦なくホスト規制
気休めだと思う。でもやる。
むしろ全部規制
日本のプロバイダだけを許可するようにしてもけっこう減るらしい。これはやっていない。
書込みフォームを別ページにする
これだけでけっこう減った。ので、割とマメにフォーム収集に来ていたのかも。ご苦労なことです。咄嗟にどこから書きこんでいいか分かりにくくなるので、書込みのハードルが上がるかもしれない。
メールとURLを書き込んできたメッセージは表示不可
神がかり的に減った。表示されなくなっただけでなく件数そのものが減った。方法は出力部分のソースを
!$email{!url{出力部分のソース}}
という風に囲む。メール項目とURL項目のどちらかでも入力してあると投稿が表示されない。ただし、過去の投稿で真っ当にメールやURLが書き込まれているものももろとも表示不可にしてしまう。
メール欄URL欄を送ってこない業者には無意味(いまのところそういう投稿は無い)。また結局書込み自体は防げないので爆裂すると1ページの表示はやっぱり不当に減る。
必須項目も組み合わせる
変数$etcは1〜8まで使えるので適宜入力しないと表示しない、入力すると表示しないを組み合わせる。
!$etc1{etc8{出力部分のソース}}
これはetc1に入力がなくて、なおかつetc8に入力があるときだけ投稿を出力する。書込みフォームには必須項目としてetc8の入力欄のみ用意する。これをいきなり導入すると過去の投稿は根こそぎ非表示になりかねない。これもやってない。
JavaScriptでキーワード規制
やりかたよく分かりませんが、できるらしい。ただ、効果はあまり期待できないらしい。それじゃあ意味無いし。
他のサービスに行くか自分で設置
最後の手段。ロケットBBSとかEZBBSとかNazcaとか。一応今のサーバは掲示板設置もできるけどいまいち面倒くさいし、レンタルのほうがなにかと気楽かもとは思う。

サンプル

見本

URLとメールを書きこんできた投稿を非表示にする、書込みフォームを別サーバに置く形の掲示板。要するに今うちでうごいてるやつに汎用性を持たせた感じ。まあいないと思いますが使いたい方は適当にコピペして持ってってください。レイアウトなんかはみんなスタイルシートなので、使わないとシンプルでクールな感じになります。

環境設定

1ページの表示件数、過去ログの表示件数を多めにしておかないと、業者爆撃を消した後に何も残らなくなったりする。(程度の問題で100発近く書き込まれれば結局表示されなくなるのだけど)うちは100件表示にしてある。本文の量が多かったりすると転送してくれなくなることがあるらしいが、さしあたり問題はおきていない。

ソース

文字コードの設定 マニュアル

※文字コードを変更する際は「<head> 〜 </head> タグに挟まれる内容」内のmetaタグのコード指定も変更してください。

ということです。どれでもいいのだけど、ぼくが2005年までたまに使ってたWannabeに優しい仕様ということでとりあえずsjisにチェック。

<head> 〜 </head> タグに挟まれる内容 マニュアル


<!--文字コードの設定が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>

<body...> タグのオプション マニュアルへ

<!--スタイルシートで記述してあるのでこちらには何も書かない-->

<body> 〜 </body> タグに挟まれる内容 マニュアル


<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> 

<body> 〜</body> タグに挟まれる内容 (投稿ページ用) マニュアル

<!--管理者投稿をするのならなにも記述しない。
 管理者投稿をしないなら半角スペースを1個いれておく。
が、フォーム収集ロボットの存在を想定すると
管理者投稿を犠牲にしても半角スペースをぶち込んで無効にしておくほうがいいかも-->

<body> 〜 </body> タグに挟まれる内容 (Replyページ用) マニュアル


<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>

Replyページ用:元記事引用の書式 マニュアル

<!--空白-->

通常表示の書式 マニュアル

<!--自動挿入されるタグの設定は以下すべて外す-->

$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>

サイト内リンク

雑文

音楽

PC

過去の日記