テンプレートマスター

PR

×
2006.10.13
XML
カテゴリ: CMS

2週間ほど前から、相互リンクとして利用している「mylinks」へのスパムが激増。
アダルトオンリーで、「超ウザーイ」ってなもの。
削除しても削除しても1時間に一度の割合で書き込まれるので、キリがない。

いっそのことmylinks使うの止めようかと思ったけど、正しく相互リンクを申し込んでくれるもいるだろうから、単純に受付禁止にするわけにもいかない。

というわけで、お手軽スパム対策を考えてみた。

変更箇所は2カ所。 modules\mylinks\templates\mylinks_submit.html
modules\mylinks\submit.php

まずは、「 mylinks_submit.htm 」で、
<form action="submit.php" method="post">
の 下 に次の文を追加
<input type="hidden" name="sb_showtime" value="<{php}>echo time();<{/php}>" />

次に「 submit.php 」で、
if (!empty($_POST['submit'])) {
の 上 に次の文を追加
//Spam buster! The post within 3 seconds is invalid.
$sb_after_sec = 3;
if(time() < $_POST['sb_showtime'] + $sb_after_sec) die;

最後にモジュールを再インストールして準備完了。

解説ぅ~~~
リンク申し込み画面が開いてから3秒以内に投稿されたものはスパムと判断しちゃうよ 」という仕組みです。
人間工学に基づいた(嘘)、お手軽スパム対策。

簡単だけど、効果は抜群。スパム投稿はなくなりました。
スパム投稿はプログラムを使ってされるのが「常識」なので、単純な「3秒ルール」でOK。
3秒以内に入力してしまう人もいるかもしれませんが…。
「判定時間が短すぎる」「長すぎる」という場合は、 $sb_after_sec の値をイジッてください。

スパムの排除具合を見たい場合は、次のようにすればOK。
if(time() < $_POST['sb_showtime'] + $sb_after_sec){
    $handle  = fopen("spam.txt","a");
    fwrite($handle, date("Y-m-d H:i:s")." ".$_POST["title"]."\n");
    fclose($handle);
    die;
}
(spam.txtのパーミッションを書き込み可にすることを忘れずに)






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2006.10.14 00:49:19


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

プロフィール

いまむぅら

いまむぅら

コメント新着

t-master @ Re:私もそうです(08/26) よしそうたく201さん こんばんは。…
よしそうたく201 @ 私もそうです こんばんは。 私もインフォシークのメー…
t-master @ Re:パソ環境に問題がありますが。。。(06/09) yumeri@nagoyaさん パソコン調子が悪いの…
t-master @ Re:ニュースを見て(06/30) yumeri@nagoyaさん >同感でした。 >え…
yumeri@nagoya @ パソ環境に問題がありますが。。。 アフィリエイトを始めたいという知人に薦…

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: