トップ 最新

ただのにっき

2007-07-22(日) [長年日記]

「暇つぶし系」のspamには無力

いろいろと対策をとっているおかげで、最近はこの日記に対してツッコミspamやTrackBack spamを喰らうことはほとんどなくなった。

……んだけど、今朝方10件ほどツッコミspamを喰らってしまってがっくり。調べてみると、SoftBankのケータイから。内容から見て、目的も知性もあるように思えないので、おそらく夏休みに入って暇で暇でしょうがない貧乏な*1高校生が、独り言をつぶやいているだけだろう。こういうのは対策のしようがないから、まずたいていのspamフィルタは無力だよなー。ケータイ相手だと、IPアドレスやUAで締め出すわけにもいかないし。

とりあえず、名前だけは固定のようなので、やっつけのフィルタを書いた:

module TDiary::Filter
   class SpamtempFilter < Filter
      def comment_filter( diary, comment )
         if comment.name == '【ここにspammerの名前】' then
            debug( "comment has bad name." )
            return false
         end
         true
      end
   end
end

収まるまでほっておこう。これで午後から6件ほど弾いている。って、明け方から夕方まで、知らぬ人の日記に向かって延々と独り言かよ! よっっっっっぽど暇なんだなー。そういうヤツは、ニコニコ動画でもみてろ。

*1 キャリアがSoftBankだから←偏見。

tDiary: 複数のURLでアクセスできる日記には、base_urlを設定しましょう

feed(RSS)経由で人の日記を読んでいて、なぜか同じ記事が複数回登場してきて不思議に思ったことがないだろうか*1。よく見てみると、それらの記事はそれぞれ別々のURLになっていたりする。

これは、同一の日記に対して、複数の異なるURLでアクセスできるような場合に発生する。たとえばこんな感じのサイトはけっこうある:

 http://www.example.jp/diary/
 http://example.jp/diary/

上記2つのURLで同一のコンテンツにアクセスできるような場合、現在のtDiaryのmakerss.rbプラグインでは問題が起きる。たとえばこんな状況:

  1. 「www」付きのURLからオーナーが日記を更新
  2. その後「www」なしのURLでアクセスしてきた読者がツッコミを入れる

すると、1.の時には「www」付きのURLでfeedが生成され、feedリーダに読み込まれたのち、2.によってfeed中のすべての記事が「www」抜きのURLで置き換えられる。feedリーダはこれを区別できないので、feedリーダ上には同じ記事やツッコミが2度ずつ並ぶことになる。

この問題に対処するもっとも正しい方法は、どちらか一方でしかアクセスできないようにすることだ。同じコンテンツに複数のURLがあって嬉しいことなんてない。mod_rewriteでも使って、どちらかへリダイレクトするようにすべき。

そうは言ってもmod_rewrite使えないし……なんて場合には、(tDiaryでは)少なくともfeedくらいは統一できるので、その設定をしておきましょう(やっと本題)。といっても、tdiary.confに以下の3行を追加しておくだけ:

def base_url
   'http://あなたの日記の唯一のURL'
end

同じ記事を何度も読ませられる読者の身になって、ゼヒ。

Tags: tDiary

*1 更新してないのに過去の記事が未読扱いされてしまうLDRのバグ(?)とは別の話。

tDiary: openid.rbをlivedoor authに対応させた

タイトルだけで用件が済んでしまった。まぁ、1行追加するだけだったのに、今まで何をしていたのかと。

そういえばopenid.rbは、そろそろcontribからpluginへ移動すべきだろうか。「すべき」というくらいにOpenIDがメジャーになっているかというと、そうでもないような気がするし。