Top > MovableType > mt-blacklist.pl
spam が増えてきたので、MT-Blacklist を入れて対応することにしました。
■ 必要なものを入手
mt-blacklist.pl (v1.62)
http://www.jayallen.org/projects/mt-blacklist/
YAML_extlib.tar.gz
MT-Blacklist User Guide から入手。
■ インストール参考ページ
Tak's ウエブログ - MT-Blacklist 1.62
みらのさんの MT-Blacklistを使用した場合の文字化け対策
■ ファイル設置
MT-Blacklist User Guide に従ってファイルを置きます。
MovableType の設置ディレクトリを $MT とすると
$MT/mt-blacklist.cgi (755) $MT/plugins/Blacklist.pl $MT/extlib/jayallen/Blacklist.pm $MT/extlib/jayallen/MTBlPing.pm $MT/extlib/jayallen/MTBlPost.pm $MT/extlib/jayallen/Blacklist_Config/ (777) $MT/extlib/Yaml.pm $MT/extlib/YAML/Error.pm $MT/extlib/YAML/Family.pm $MT/extlib/YAML/Node.pm $MT/extlib/YAML/Transfer.pm
Blacklist_Config ディレクトリは、CGI が書込めるパーミッション(777など)に設定します。
■ Blacklist.pm の設定
Blacklist.pm にある以下のパスを環境にあわせて書換えます。
(作成した Blacklist_Config ディレクトリまでのパスを指定)
$blacklist_config_directory = '/path/to/extlib/jayallen/Blacklist_Config/';
■ MTBlPing.pm 文字化け対策
TrackBack で文字化けを防ぐには、MTBlPing.pm に以下の修正を加えると良いようです。(Takさん、みらのさんに感謝)
--- MTBlPing.pm.orig Thu Jan 22 17:00:34 2004
+++ MTBlPing.pm Thu Jan 22 17:06:36 2004
@@ -36,11 +36,20 @@
#print STDERR "In ".__PACKAGE__." at ".__LINE__."\n";
#warn "In ".__PACKAGE__." at ".__LINE__."\n";
- my($title, $excerpt, $url, $blog_name) = map scalar $q->param($_),
- qw( title excerpt url blog_name);
+ my($title, $excerpt, $url, $blog_name, $icode) = map scalar $q->param($_),
+ qw( title excerpt url blog_name charset );
MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
+ require Jcode;
+ my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
+ 'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8';
+ my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',
+ 'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name);
+ $title = Jcode->new($title, $incoming)->$charset();
+ $excerpt = Jcode->new($excerpt, $incoming)->$charset();
+ $blog_name = Jcode->new($blog_name, $incoming)->$charset();
+
return $app->_response(Error => $app->translate("Need a Source URL (url)."))
unless $url;
@@ -103,7 +112,11 @@
$ping->ip($app->remote_ip || '');
if ($excerpt) {
if (length($excerpt) > 255) {
- $excerpt = substr($excerpt, 0, 252) . '...';
+ $excerpt = substr(Jcode->new($excerpt, $charset)->euc(), 0, 252);
+ if ($excerpt =~ /\x8F$/ or $excerpt =~ tr/\x8E\xA1-\xFE// % 2) {
+ chop $excerpt;
+ }
+ $excerpt = Jcode->new($excerpt . '...', 'euc')->$charset();
}
$title = first_n_words($excerpt, 5)
unless defined $title;
■ mt-blacklist.cgi 初期設定
mt-blacklist.cgi にアクセスして、初期設定を行います。
Would you like to activate MT-Blacklist? を [Yes] にする。
If yes, enter the full path and filename of the file: で blacklist.txt を保存するパスを指定する。
blacklist.txt は Blacklist_Config 以下に保存することにしました。
その他は特に変更していません。
[Save Configuration] ボタンを押して設定完了。
■ blacklist.txt の登録
http://www.jayallen.org/comment_spam/ に Latest Master Blacklist file があるので、この内容を mt-blacklist.cgi の [Add] のページで import しておきました。
これでしばらく様子をみることにします。
(追記)
Trackback rebuild で lib/MT/App/Trackback.pm に修正を加えていたので、MTBlPing.pm の該当部分にも修正を追加。
--- MTBlPing.pm~ Thu Jan 22 22:16:11 2004
+++ MTBlPing.pm Thu Jan 22 22:19:41 2004
@@ -143,6 +143,8 @@
$app->rebuild_indexes( Blog => $blog )
or return $app->_response(Error =>
$app->translate("Rebuild failed: [_1]", $app->errstr));
+ $app->rebuild_entry( Entry => $entry )
+ or return $app->error($app->translate( "Rebuild failed: [_1]", $app->errstr));
if ($app->{cfg}->GenerateTrackBackRSS) {
## Now generate RSS feed for this trackback item.
■2004/07/21 追記
日本語以外のコメントを拒否する修正を追加
Bulkfeeds で関連記事検索
Excerpt: MT-Blacklistを導入してしばらく経ちましたが、トラックバックの文字化けを見逃していました。 まだトラックバックが一切無く、気付かなかったわけです(汗)。 MT-Blacklistでは、日本語パッチを適用してもTrackback.pmのメソッドを置き換えてしまうとのこと。 @smate.NE...
Weblog: BBBLOG
Tracked: February 6, 2004 07:41 PM
Excerpt: いま一度文字化け対策を見直し。 これまでもTrackbackの文字化け対策に関してはいろんなサイトさんをチェックしてたのですが何故かウチだけうまくいかないようで、諦めかけていたのですが、もしや・・・とキチンとアップしたつもりのMTBlackListを慎重にチェック。しかし...
Weblog: H&K
Tracked: February 11, 2004 11:50 PM
Excerpt: Trackbackの表示処理およびMT-Blacklistの修正を参考にさせていただきました。
Weblog: alternative-live
Tracked: February 12, 2004 12:49 AM
Excerpt: 変更を加えてみました。 Notebook :: Hibi no Note: アドレス非表示(スパム対策) @smate.NET: mt-blacklist.pl TIPS@BLOG: エントリーの続きが“びろ〓ん” HuntingGirledCollective: トラックバック着信で自動リビルド ついでにレイアウトもちょっと変更。 でも定期的...
Weblog: ハblog
Tracked: March 14, 2004 03:18 AM
Excerpt: 今日、Trackbackを受けたことが個別アーカイブに反映されていないことを発見。2.661にバージョンアップしたからかなーと思っていたのですが、lib/MT/App/Trackback.pm はバージョンアップに関係ありませんでした。 で、すごーく気になって調べていたんですが、原因がわか...
Weblog: from TSUKUBA
Tracked: March 18, 2004 12:30 PM
Excerpt: 最近、1日1通なんだけれど毎日SPAMコメントが来て困っていました。 いままでは「禁止IPの設定」っていうので一個一個消したんだけれど、それもうっとうしいし。 なので、MT-Blacklistを導入しました。 参考にさせてもらったのはこちら↓ 【alternative-live: MovableTyp...
Weblog: 赤いオレンヂ
Tracked: May 6, 2004 03:02 AM
Excerpt: 初の Trackback をもらって、個別アーカイブが自動で Rebuild されない事に気づいた。以前、「これができるよう lib: MT: App: Trackback.pm を改造したはずなのに... 」と思っていたら、その後に MTBlacklist を導入したんだったと気づき、 extlib: jayallen: MTBlPing...
Weblog: shorttrack.jp
Tracked: November 19, 2004 11:59 AM
takerattaと申します。こんばんは、宜しくです。
大変参考になりました。
有り難うございます。これからも宜しくお願いします。
自分のところもTRACKBACKスパムが酷すぎるので、Blacklistを導入しようとしているのですが、
An error occurred: Can't locate object method "load" via package "MT::PluginData" (perhaps you forgot to load "MT::PluginData"?) at extlib/jayallen/Blacklist.pm line 2945.
と、このようなエラーがでて先に進めません。
もし、何かしらの解決方法をご存じでしたら、お教え頂けないでしょうか?
この記事は MT2.64 向けなので MT3.1x では参考にならないかもしれません。すみません。
MT3.1x をお使いの場合は Blacklist 2.04-beta をインストールしないといけないみたいです。
