掲示板のスパム投稿対策(連続投稿禁止情報の共有)

きまっし金沢関連のサイトでは掲示板はkent-webのYY-BOARDを利用してます。多くのサイトで使われているだけにスパム投稿に狙われる事も多いのが難点です。

スパム投稿対策として,YY-BOARD spam 対策改造を利用しています。これで自動投稿は防ぐことはできます。

きまっし金沢の関連サイトでは30個の掲示板を設置していますので、多くの掲示板に手動で1件ずつスパム投稿をしようとする例もあります。

基本的には投稿禁止IPを登録して全ての掲示板で禁止IPではアクセスできないようにしてますが,チェックできない時間の新たなIPでの投稿には対応できないという状態でした。
そういう訳でYY-BOARD spam 対策改造の同一IPアドレスの短時間での連続投稿禁止の機能を利用して,きまっし金沢関連の1つの掲示板に投稿した場合には一定時間たたないと他の掲示板にも投稿できないような制限を加えることが出来るように掲示板を改造してみました。実際に試してみましたが,なんとか動作しました。

まずは全ての掲示板のyyini.cgiを
# 制限投稿間隔(秒数)
# → $regCtl での投稿間隔
$wait = 120;
に設定します。
全ての掲示板のyybbs.cgiに
#IPファイルを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile2″);
を設置します。
具体的には
local($no,$re,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico);
#IPファイルを開く
open(IN2,”$logfile2”) || &error(“Open Error: $logfile2″);
# 記事を展開
$i = 0;
$flag = 0;
open(IN,”$logfile”) || &error(“Open Error: $logfile”);
という具合です。
最後に全ての掲示板のyyregi.cgiを改造します。
まず
# IPログを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile”);
@lines2 = ;
close(IN2);
# IPログのデータ書き出し
$top2 = shift(@lines2);
local($ip2,$tim2) = split(/<>/, $top2);
を追加します。
具体的には
# ファイルロック
if ($lockkey) { &lock; }
# IPログを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile”);
@lines2 = ;
close(IN2);
# IPログのデータ取り出し
$top2 = shift(@lines2);
local($ip2,$tim2) = split(/<>/, $top2);
# ログを開く
open(IN,”$logfile”) || &error(“Open Error: $logfile”);
@lines = ;
close(IN);
# 記事NO処理
$top = shift(@lines);
local($no,$ip,$tim) = split(/<>/, $top);
$no++;
という具合です。
連続投稿チェックの引数を変更します。($ipを$ip2に,$timを$tim2に変更します)
具体的には
# 連続投稿チェック
$flag=0;
if ($regCtl == 1) {
if ($addr eq $ip2 && $times – $tim2 < $wait) { $flag=1; } } elsif ($regCtl == 2) { if ($times - $tim2 < $wait) { $flag=1; } } if ($flag) { &error("現在投稿制限中です。もうしばらくたってから投稿をお願いします"); } という具合です。 最後に# 親記事の場合中の#更新の後に(140行前後)に # IPログ更新 @new="$addr<>$times<>\n”;
open(OUT2,”>$logfile2″) || &error(“Write Error: $logfile2″);
print OUT2 @new;
close(OUT2);
を追加します(上記の\nは¥nの半角です)。
具体的には
# 過去ログ更新
if (@data > 0) { &pastlog(@data); }
# 更新
open(OUT,”>$logfile”) || &error(“Write Error: $logfile”);
print OUT @new;
close(OUT);
# IPログ更新
@new=”$addr<>$times<>\n”;
open(OUT2,”>$logfile2″) || &error(“Write Error: $logfile2”);
print OUT2 @new;
close(OUT2);
という具合です。(上記の\nは¥nの半角です)
yyregi.cgiの改造はわかりにくいので改造済みのファイルをダウンロードできるようにしました。

掲示板のスパム投稿対策(連続投稿禁止情報の共有)」への3件のフィードバック

  1. 今日もスパム投稿があって,初めは10分待って他の掲示板に投稿してたようですが,さすがに10分待つのは馬鹿馬鹿しく思えたようで,途中で諦めて退散したようです(笑!)
    スパム投稿対策強化として,投稿頻度の少ない掲示板は連続投稿禁止の間隔を30分にしました。

  2. 金沢の医者さん情報の掲示板の連続投稿禁止の間隔を4分に延ばしても,4分待って連続投稿する事例があったので,連続投稿禁止の間隔を10分に伸ばしました。
    ほとんどの掲示板はスパム投稿をしても自動リンクしないように設定してあるし,自動リンクの設定にしてある掲示板もリンク先には検索ロボットが行かない設定してあるので,何時間もかけてスパム投稿してもSEO効果は全く無いんですけどね(笑い!)

  3. スパム投稿の間隔が2分以上ある場合が多いので,金沢の医者さん情報の掲示板は投稿間隔を4分に延ばしました。
    具体的には金沢のお医者さん情報の掲示板のyyini.cgiを
    # 制限投稿間隔(秒数)
    # → $regCtl での投稿間隔
    $wait = 240;
    に設定しました。
    ついでにきまっし金沢のイベント掲示板,満腹掲示板,ホタル掲示板はと金沢すぐれもの情報のアルバイト掲示板の投稿間隔は5分に延ばしました。

コメントを残す

メールアドレスが公開されることはありません。