tDiary.orgtDiaryについて動作環境ドキュメントダウンロードテーマプラグイン開発コンタクト効果的なspamフィルタの設定方法ツッコミやTrackBackを狙ったspamが増えています。日記を書いている自分では気づいていないかも知れませんが、フィード(RSS)経由で日記を読んでいると、かなりの数のツッコミspamを読まされることになって、読者が迷惑していることが少なくありません。2.2からは標準でspamフィルタが付属していますが、適切な設定をしないとspamを撃退することができません。読者のためにも、きちんとspamフィルタを設定しましょう。この記事では、最低限の設定で効果的にspamを撃退できるフィルタの設定方法をお教えします。メール欄をトラップにする「hide-mail-fieldプラグイン」のっけから標準のspamフィルタでない機能ですが、最近のspamには非常に効果がある方法です。この手法では、「人間には見えないがspamボット1には見える」というトラップ(罠)用のフィールドを用意して、そこにおびき出します。うまいトラップを用意できれば、かなりの割合のspamを撃退できます。tDiaryのツッコミフォームには、名前、E-mail、本文のフィールドがありますが、このうちE-mail欄は必須ではありません。E-mail欄を人間には見えないようにすることで、「E-mailを入力してあるツッコミはspam」という判断をします。設定は以下の手順で行います:設定ページの「プラグイン選択」(基本カテゴリ)から「hide-mail-field.rb」を選択して有効にします。これだけではspamフィルタは有効になりません。続いて「spamフィルタ」(セキュリティカテゴリ)を開きます。「ツッコミのメールアドレスが以下のパターンに当てはまる場合はspamとみなす。正規表現が使えます」の内容に「@」を入力してOKします。これで、E-mail欄に「@」(メールアドレスに必ず含まれる文字)が入っているツッコミはすべてspamと見なせます。人間がツッコミフォームを見ると、E-mail欄が消えていることがわかります。万が一E-mail欄が消えないブラウザを使っている人のために、ツッコミ欄の注意書きを書き換えておきましょう。設定ページに「メール欄隠し」(セキュリティカテゴリ)が増えているので、そこに「spam対策でE-mail欄は隠してあります。E-mail欄が見えていても、何も入力しないで下さい。」のような注意書きを加えておきましょう2。ツッコミに含まれるURLの数を制限するほとんどのツッコミspamは、自サイトへ誘導したり、メールで問合せをしてもらうことが目的です。後者については最初の「E-mail欄トラップ」で捕まえられますが、本文にURLを書き込んでいくタイプについては、別の手法が必要です。標準のspamフィルタには「ツッコミ中のURLの数」を制限する設定があるので、これを制限しましょう。ここに2〜5程度の数値を設定しておくことで、複数のURLを本文に入れていくspamをはじくことができます。この数値は、あなたの日記の読者の傾向から、正当なツッコミなら何個以下だろう、という経験則で導き出します。HTMLの断片を書き込んでいくspamも多いです。このため、「href=」のようなリンクを生成するHTMLに必ず含まれるような文字列をキーにしてspam判定をするのも得策です。「ツッコミ本文が以下のパターンに当てはまる場合はspamとみなす。」の設定に「href=」を入力しておくと効果的です。リンクのないTrackBackをはじくTrackBack機能を有効にしている人も多いでしょう。spamでは、TrackBackを受け付ける側へのリンクを張らず、一方的に逆リンクを生成しようとするものがほとんどです。そこで、TrackBackを受信したら、送付元の内容を調べて、自分のサイトへのリンクがなければspamとみなすフィルタが装備されています。以下のように設定します:設定ページから「spamフィルタ」(セキュリティカテゴリ)を選択します。「内容によるフィルタ」の一番最後に「TrackBack送信元の」......という項目があります。ここを「中に自サイトへのリンクがあれば受信する」にしてOKします。これで設定は完了です。spamのほとんどはこれで撃退できるでしょう。最後の砦「Akismet」などの学習型フィルタ上記3つの設定で、ほぼspamを撃退できます3。この上でさらにフィルタをかけるのであれば、学習型のフィルタを併用するとよいでしょう。spamフィルタAkismetというオンラインspamフィルタサービスを利用するプラグインです。プラグイン選択にて有効にすると、設定可能になります。詳しくはヘルプを参照してください。BayesフィルタAkismetのようなオンラインサービスではなく、自分で学習させるタイプのフィルタもあります。ベイジアンというアルゴリズムを使ったBayesフィルタが、contribパッケージに含まれています。詳しくは作者のサイトを参考にしてください。脚注ツッコミspamはほとんどがプログラムによる自動投稿です。↩この記述はspamフィルタの設定ページでも書き換えられます。↩spammerが使うテクノロジも日々進歩しています。これらのフィルタが効果を失うのも時間の問題かも知れません。(Google)最近のテーマ最近のプラグインhide-mail-fieldedit_todayakismetmy-sequelTwitter@tDiaryFacebooktDiary。