DNS 式ブラックリストでプロクシ経由のスパムや荒らしを防ぐ

Posted by
ぴろり
Posted at
2005/10/02 22:30
Trackbacks
関連記事 (0)
Comments
コメント (1)
Post Comment
コメントできます
Category
MovableType カテゴリ
カバーイメージ
 void GraphicWizardsLair( void ); //otsune さんが 公開されていたネタで、 2 ちゃんねる運営が公開している DNS 式ブラックリストを参照し、 プロクシ経由のスパムや荒らしを防ごうというアイディア。 自前でブラックリストを持たずにリストの参照を完全に外部に依存してしまって、 しかもその参照先が荒らしの総本山(?)とも言える 2 ちゃんねるというのが何となく強力な気がしてなりません(笑)  BBQ のページにサンプルコードが掲載されていたので、 これをほとんどそのままに MovableType に組み込んでみました。
この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

車輪の再発明 ('05/10/03 追記)
 同機能(ちゅーか更に高機能)な SpamLookup というプラグインが存在します (情報元:blog.wore.ma.cx さん)  MovableType 3.2 には標準で添付されているようで、SixApart のお墨付きと考えれば、 このエントリの紹介記事を実践されるよりも、こちらのプラグインを導入された方が良いと思います。  …今回の記事は…うーん、どうしよう(´・ω・`)ショボーン
導入方法
 プロクシ規制の判定コードを共通モジュールとし、コメントの投稿時とトラックバックの受信時にこれを用いてプロクシ規制を行います。 導入作業は 3 つのファイルを作成・編集するだけなので、30分もかからずに作業を完了できると思います。

MovableType3.171jaで動作確認済みです。

BBQ.pm の導入
 以下に示すプロクシの判定コードを /cgi-bin/mt/extlib/BBQ.pmで保存します。 コードはサンプルコードほぼそのままです。
package BBQ;
;########################################################################
;###	BBQ あらしお断りシステム
;###			Programmed by Piroli YUKARINOMIYA
;###			http://www.magicvox.net/home.php

use strict;

sub checkProxyList {
	my $RADDR = $ENV{'REMOTE_ADDR'};
	$RADDR =~ /^(d+).(d+).(d+).(d+)$/;
	my $query_addr = "$4.$3.$2.$1.niku.2ch.net";
	my $addr = join ('.', unpack ('C*', gethostbyname ($query_addr)));
	return $addr eq '127.0.0.2' ? 1 : 0;
}

1;
__END__

;########################################################################
* Original concepts & codes
		http://www.otsune.com/diary/2005/10/02/3.html#200510023
		http://bbq.uso800.net/
		http://info.2ch.net/wiki/pukiwiki.php?BBQ</textarea>



<h4 class="section">Comments.pm の修正</h4>

 コメントが投稿されたタイミングで、上のロジックを用いてプロクシ規制を行うためのコードを追加します。
以下を参照に <span class="filename">/cgi-bin/mt/lib/MT/App/Comments.pm</span> を修正します。

<p>
<textarea class="code" cols="80" rows="12">
sub post {
    my $app = shift;
    my $q = $app->{query};

    return do_preview($app, $q, @_) if $app->request_method() ne 'POST';

;### PROXY規制 ここから追加
{
	use BBQ;
	return $app->handle_error (
			'荒らし対策のため公開プロクシからの投稿を規制しています。'.
			'規制対象プロクシか<a href="http://sv2ch.baila6.jp/chk_proxy.cgi">こちら</a>でチェックしてください。'
	) if (BBQ'checkProxyList ()); #↑プロクシ規制に引っかかった場合のエラーメッセージ
}

;### PROXY規制 ここまで追加
Trackback.pm の修正
 コメントへの対応と同じく、トラックバックが送信されたタイミングで、プロクシ規制を行うためのコードを追加します。 以下を参照に /cgi-bin/mt/lib/MT/App/Trackback.pm を修正します。
sub ping {
    my $app = shift;
    my $q = $app->{query};

;### PROXY規制 ここから追加
{
	use BBQ;
	return $app->_response(Error =>
			'荒らし対策のため公開プロクシからの投稿を規制しています。'.
			'規制対象プロクシか<a href="http://sv2ch.baila6.jp/chk_proxy.cgi">こちら</a>でチェックしてください。'
	) if (BBQ'checkProxyList ()); #'
}
;### PROXY規制 ここまで追加
この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

寄せられたコメント (全 1 件中、最新 5 件まで表示しています)

Posted by
ぴろりぴろり
at
2005/10/03 18:01
ID
tIrmGXNg
blog.wore.ma.cx さんからのトラバで知ったところによると
同機能(ちゅーか更に高性能)な SpamLookup というプラグインがあるようです。
http://bradchoate.com/projects/spamlookup/
しかも MovableType 3.2 からはパッケージに標準で添付されていますから
素直にこっちを使った方が手軽&便利&安全な気がします(`・ω・´)

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。