MovableTypeの最近のブログ記事

[MovableType]トラックバックスパム対策
MovableTypeにコメントスパムだけではなくて、トラックバックにもスパムがくるようになったので対策を考えた。

どのエントリーにpingされたのか分からない!! - 対策失敗
メイルでpingのお知らせはくるけど、MovableTypeのmenu画面では、どのエントリーにpingされたのか分からなくて困るので、以下のような対策を考えたが失敗してしまった。
失敗した作戦は、menu.tmplにコメントスパムの対応と同様に


<TMPL_IF NAME=HAS_EDIT_ACCESS><a class="list" href="<TMPL_VAR NAME=SCRIPT_URL>?__mode=view&_type=entry&id=<TMPL_VAR NAME=ENTRY_ID>&blog_id=<TMPL_VAR NAME=ENTRY_BLOG_ID>"><TMPL_VAR NAME=PING_CREATED_ON></a><TMPL_ELSE><font class="title"><TMPL_VAR NAME=PING_CREATED_ON></font></TMPL_IF>

なんていれたらすぐに、「最近 5つの Ping」で、どのエントリーにpingされているのか分かって便利かとおもってやってみた。
しかし、PING_LOOP中では、ENTRY_IDが取れないのでダメ

とりあえずいままでにpingされたものだけでも削除!!
いろいろ調べたけど、とりあえず、いままでにpingされたものを削除するには、コメントスパムの時と同じでDBの中で削除するのが良いらしい。


delete from mt_tbping WHERE tbping_blog_name like '%poker%' or tbping_blog_name like '%texas%' or tbping_source_url like '%poker%' or tbping_source_url like '%texas%' ;

で削除できるらしいので、まず


select * from mt_tbping WHERE tbping_blog_name like '%poker%' or tbping_blog_name like '%texas%' or tbping_source_url like '%poker%' or tbping_source_url like '%texas%';

で確認してから削除した。

ベイジアンフィルタ for MovableType」を使ってみる。
spamsssianと同じようなベイジアンフィルタをMovableTypeでも実現してくれているひつがいるので、早速使ってみる。
日本語解説: KANWAKYUDAI::Blog:ベイジテンフィルタ for MovableType
てもとのMovableType 2.64 + PostgreSQLにインストールしようとしたら色々問題が有った。


■tinyintなんて無い!!
Documentのとおりに進むとbayesian-init-db.cgiの実行のところで、PostgreSQLに「"tinyint"なんて知らない」と言われるので、bdb/bayesian_postgres.dumpのtinyintをsmallintに変えて実行
※mysqlでの1byte intがtinyintらしいが、手元のPostgreSQLでは無いらしいのでSQL92にもある2byte intのsmallintで代用させた。


■PostgreSQL用のTable dumpが間違い
bayesian-init-db.cgiの実行で利用するbayesian_postgres.dumpでは二つのテーブルを作った後にインデックスをつけているけどテーブル名が間違っていたので修正


誤: create index bayesianblog_blog_id on bayesian (bayesianblog_blog_id);
正: create index bayesianblog_blog_id on bayesianblog (bayesianblog_blog_id);

さらに最後のテーブルのインデックス作成でも、同様の間違いがあるので訂正


誤: create index bayesiantoken_blog_id on bayesian (bayesiantoken_blog_id);
正: create index bayesiantoken_blog_id on bayesiantoken (bayesiantoken_blog_id);

ここまで一度bayesian-init-db.cgiを実行しているとテーブルはできてしまっているので、psqlで


drop table bayesian; drop table bayesianblog;drop table bayesiantoken; drop sequence bayesian_id; drop sequence bayesianblog_id; drop sequence bayesiantoken_id;

を走らせて、テーブルとシーケンスを消してから再度トライの必要がある。

■なんとかDBスキーマ完成
mt-bayesian.cgiで


Loading database schema...
Done loading bayesian data into the database! All went well.

が出たので、なんとかDBは完成したみたい。
でもTRAINしても[Spam Probability: 50%]から変わらない何故?
そういえば、DBに作ったテーブルにも何も更新が入ってない
で、さらにDBのテーブルをDROPしてもエラー無し (;_;) うごいて無いじゃん!

「こころぐ」などでは、エントリーと同じページにトラックバック一覧が出る。
MovableTypeのDefaultでは、「トラックパック(1)」をクリックすると別ページでトラックパックの一覧が出る。(CNETも同じ方式ですね)
「こころぐ」みたいにしてみた。

[blog][MovableType]MovableTypeに沢山のSPAMコメントが来る
まずは、DBのテーブルを見て


select * from mt_comment where comment_email like 'ljas%'

と、このメイルアドレスで投稿されているコメントがゴミであることを確認。次に

delete from mt_comment where comment_email like 'ljas%'

で消した。いくつかのメイルアドレスだったけど、なんと500件近くを消去。
毎回、SQL書くのも疲れるので、「JDBCプログラム書くかな」と思ったけど、MovableTypeのSPAMコメントについては、みなさんが困っているようで
 ARTIFACT ―人工事実― | MovableTypeコメントSPAM対策
に対策方法がpickupされている。

 まずはMovableTypeの編集メニューの改造
まずは、MovableTypeの編集メニューで、さっさか削除できるように
 Memo Leaves: 編集メニュー画面からコメントスパムを一括削除
により、削除しやすいメニュー方式に変更するために ./tmpl/cms/menu.tmp を入れ替えた。

 次に自動投稿を防ぐhidden登録
 これは「C.G.I.: 簡単SPAMコメント対策」を参考にして、コメントのテンプレート
Comment Listing Template
Comment Preview Template
Commment Error Template
Individual Entry Archive
で、hiddenがある所に


 <input type="hidden" name="nazo" value="nazodome" />

を追加して、/MT/lib/MT/App/Comments.pm の78行目からに

#Spam protection added by chrome add by tkyn
if (!$q->param('nazo')) {
return $app->handle_error($app->translate("Please check the 'Spam Protec
tion' system."));
}

とした。
かっちょいいのは、hiddenのvalueの内容を動的に変えながらチェックするんだけど、面倒なのでパス


コメント内容に漢字が無い場合に防御する
ついでに、
 


if ($q->param('text') !~ /[\x80-\xff]/ ) {
return $app->handle_error($app->translate("Comment text is required Kan
ji charactor."));
}

も追加してみようと思ったけど、これはEUCなら良いけど、「UTF-8では困るかもしれない」と思って、まだ利用していない。

URLペースでの防御
blog.bulknews.net: MT コメントSPAM対策」には、Blocklistに乗っているURLだとコメントを投稿できない仕組みがあります。リストのメンテナンスが出来そうに無いので、まだ入れてないけどね。

Top_Referer改造

「わんこのふろく」には、リンクから来る人よりもサーチエンジンから来る人が多いけど、Top_Refererでは、サーチに用いられた検索語はURLエンコードされて出てきてしまって、リンクを開かないと検索語が分からなくて不便だった。
そこで、表示する文字列は、元の文字列で表示するように変えた。

Individual Entry Archiveに変更してコメントをOnにしたときに、Bulkfeeds: Similarity Search(似たようなページ)が出るようにした。

参考: blog.bulknews.net: Bulkfeeds: Similarity Search リリース

First Weblog: ハイライトにするまで真っ白画面になってしまう対策のコメントで、「トラックバック表示されませんよ?」と頂いたけど、おうちサーバからはトラックバック出来ていたので、
「外からだと、トラックバックできないのかなぁ」って悩んでいたけど、「First Weblog: Discussion on StrutsのツールCamino」で、ドイツからトラックバックを頂いて、ちゃんと登録されている♪

来訪者監視系(CGIスクリプトのサンプルとダウンロード - CGI Script Market)
にTop_Referer v.2.01 「リンク元をランキングしてみる」というのが有ったので、使ってみることにした。
オリジナルは、CGI置き場でログを取るので、ひとつのCGIで全てのページの統計になってしまうので、各ページで情報を取れるように少し改造して使ってみることにした。
どうだろうか

Amazon XSLT for MT

daly bLog by snotchで、MovableTypeで amazon ウェブサービスを手軽に利用する方法として、XSLT+MovableTypeのテンプレートで実現する方法をAmazon XSLT for MTとして公開されているので、使ってみる。

ValueCommerceのアフィリエイトプログラムを入れることにした。

MT4i/MovableType用 携帯電話向け変換プログラムとは
携帯からMovableTypeを見えるようにするCGI

aws.pl - MT plugin for Amazon webservices
すげー
MovableTypeで、Amazonの書影を引っ張ってこれる~
tDiaryではすでにある機能だけどね。

Google
  Web on-o.com
Powered by Movable Type 7.9.8

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMovableTypeカテゴリに属しているものが含まれています。

前のカテゴリはmoblogです。

次のカテゴリはPodcastです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

アーカイブ