◎ 宣伝トラックバックスパムを受信拒否しよう(言及リンク必須編) (BlognPlus版)




目的

トラックバックスパム対策1では、全角文字がないトラックバックを弾く方法を説明しました。
でも、それだとアメリカなどの海外の人たちとのやり取りに、支障が出てきてしまうと思われるので、
異なる方法のスパム対策を説明します。

トラックバック送信元の記事に、自分のブログのURLがなかったら『宣伝』と判断して受信拒否!
いわゆる 『言及リンク』 がなかったら弾いちゃうよ~ ってのに似た方法です。
最近レンタルブログなどでも、このスパム対策機能が付けられ始めてますよね(^^

1箇所追記するだけのお手軽対策なので、お試しあれ


言及リンクとは?

言及リンクとは…
 自分の記事に、トラックバック先の記事のURLを書くことをいう (>Wikipediaより)

トラックバックには明確なルールはないので、
言及リンクがないからといって、必ずしも 「トラックバックスパムだ!」とは
決め付けられないのですが
スパム業者やアダルトサイトからのスパムを排除するには、言及リンクの有り無しで弾くのが手っ取り早い


作業に入る前の注意点

この改造をするにあたり、
BlognPlus(ぶろぐん+)スクリプト本体の tb.php をいじることになります。
間違えるとブログが壊れる可能性もあるのでphp初心者で自信が無い…という人は
バックアップをしっかり取って作業するか、もしくは諦めた方が無難です(^^;
壊れても当方は責任を取りませんので自己責任で作業してくださいネ

動作確認サーバー:  ロリポップ! / さくらインターネット / VALUE-DOMAIN XREA
ぶろぐんVer: 2.2.4/2.3.2


トラックバックスパム対策の改造説明

作業としてはこの1つ
 (1) tb.php の修正

(1) tb.phpの修正

ぶろぐんプラススクリプトの tb.phpファイル を開いてください。

$url を取得した後に ここから~ここまで(下記テキストエリア内のソース) を追加します

38行目位 if (!$_POST["url"]) {
39行目位   res_xml(1,"No URL (url)"); // urlが無い場合はエラー終了
40行目位 }else{
41行目位   $url = $_POST["url"];
42行目位 }
43行目位 if (!$_POST["title"]) {
44行目位   $title = $url;
45行目位 }else{
46行目位   $title = $_POST["title"];
47行目位 }



48行目位 $title = blogn_mbConv($title, 0, 4);
49行目位 $excerpt = ($_POST["excerpt"] ? $_POST["excerpt"] : "");
50行目位 $excerpt = blogn_mbConv($excerpt, 0, 4);
   #ソース行数はぶろぐんのバージョンによって変わるので目安程度にしてください

tb.phpを保存し、FTPソフト等を使用して上書きアップロードすれば完了です(^^)b

お疲れさまでした。

問題点

この方法は厳密に言えば、言及リンクの有り無しでスパムを弾くというより
「トラックバック送信先のブログに自分のブログのURLがなかったら弾く」、という方法なのです。
なので…、
例えばトラックバック送信者のブログのサイドバーなどに、
自分のブログのリンクが貼ってあったりすると、記事中に言及リンクがなくてもトラックバックは受信しちゃいます(汗

でも、不特定多数に大量のスパムを送りつけるスパム業者に対してなら
今回説明した改造法は有効でしょう。


ただ、スパム業者はこちらがいくらスパム対策を施しても、 更なる抜け道を考えて実行してくるでしょうし
こればかりはスパムメール同様どうにもならないので
いずれ、新たな対策を施さないといけなくなるかもしれません。

んでも、今のところは有効抜群です