plugins:np_blacklist

NP_Blacklist.php (JP)

NGワードとDNSBLを利用してコメント・トラックバックspamを防ぐプラグイン。

General Plugin info
作者: xiffy, hsur
最新のバージョン: 1.3.1 (2008/06/08)
入手先: ダウンロード
ソース: Nucleus Japan SVN
動作サンプル:
オリジナル参照先: blacklist
フォーラム参照先: NP_Blacklist
作者サイト参照先: NP_Blacklist - NP_cles()

DNSBLについて

NP_BlacklistのキモはDNSBLというDNSの仕組みを利用したブラックリストを採用しているところにあります。
(もちろん、独自のNGワードを設定することもできます。)

一部で「DNSBLを利用しているため、メンテナンス不要で勝手に賢くなるブラックリストである」かのような解説がなされていますが、NP_Blacklistと同じく、DNSBLについても有志による活動によってメンテナンスが行われています。決して勝手に賢くなるブラックリストなのではありません。spamとの戦いはいたちごっこです。spamおよび、DNSBLの誤認を発見した際にはDNSBLへの報告について協力をしてください。

なお、NP_Blacklistが標準で利用しているDNSBLは以下のとおりです。

  • IP RBL
    • niku.2ch.net
    • list.dsbl.org
    • bsb.spamlookup.net
  • Domain RBL
    • rbl.bulkfeeds.jp(v1.3より廃止)
    • url.rbl.jp
    • bsb.spamlookup.net

インストール方法

  1. Zipファイルを展開して、中身をNucleusのpluginsディレクトリにアップロードする
  2. (プラグインフォルダ)/blacklist/settingsおよび、(プラグインフォルダ)/blacklist/cacheディレクトリのパーミッションをphpから読み書き可能に変更する。(アップデートの場合など、ディレクトリ内に既にファイルが存在する場合にはそれらのファイルも読み書き可能にしておく必要があります。)
    (例: ディレクトリ777, ファイル666)
  3. 管理画面からBlacklist,AddSpamCheckEventの2つのプラグインをインストールする

このプラグインの使い方

インストール後、管理画面から設定を行います。

スキン/テンプレートへの記述

スキン、テンプレートへの記述はありません。
インストールすると設定にしたがってspamをブロックするようになります。

オプション

  1. プラグインを有効にする – プラグイン全体の機能を有効にするか?
  2. ブラックリストに該当した場合のリダイレクト先 – spam判定をした場合に表示するURL
    (空欄の場合には403 Forbiddenを表示します)
  3. IPによる防御を有効にするか? – IPアドレスによるspam判定を有効にするか
  4. 同一IPから何度spamを受信したらIPブラックリストに追加するか? – spamと判定される行為を何回以上行った場合、送信者のIPをブラックリストに追加するか?
  5. Bulkfeeds API Key – BulkfeedsのAPI key(spam報告を行う際に必要)(v1.3より廃止)
  6. DNS逆引きをスキップするか? – IPアドレスをドメイン名として表示する機能を無効にするかどうか?
    (負荷が大きいためOnを推奨)

管理画面

NP_Blacklistには設定を行うための独自の管理画面があります。

  1. NGワード編集 – 自分独自のNGワードを設定します
  2. NGワードのテスト – 設定したNGワードの動作確認を行います
  3. IPホワイトリスト編集 – 特別に許可しているipアドレスを表示します
  4. IPブラックリスト編集 – ブロックしているipアドレスを表示します
  5. ブラックリスト動作ログ – NP_Blacklistがブロックした履歴を表示します
  6. プラグインオプション – NP_Blacklistのプラグインオプションを設定します
  7. .htaccessファイルの生成 – 現在の設定を.htaccessで利用可能な形式で出力します
  8. Bulkfeedsへのspam報告 – Bulkfeedsにspam送信元のURLを報告します(v1.3より廃止)
  9. 動作確認報告 – 作者に動作確認報告を送ります

NGワード編集

画面上部にあるフォームからNGワードを登録することができます。

  1. NGワード – NGワードを登録します
  2. コメント – NGワードについてのメモを入力することができます
  3. 正規表現を有効にするか? – ONになっていない場合に、正規表現の特殊文字を自動的にエスケープします。

NGワードのテスト

NGワードの現在の設定について実際のテキストを入力してテストできます。

IPホワイトリスト編集

許可対象になっているipリストを表示、編集できます。 このIPアドレスについてはNP_Blacklistによって絶対にspam扱いされないようになります。

ipアドレスについては前方一致もしくはCIDR形式(###.###.###.###/##)が使用できます
例:192.168.0.と設定することにより192.168.0.0~192.168.0.255の範囲でブロックが可能です。

IPブラックリスト編集

ブロック対象になっているipリストを表示、編集できます。

ipアドレスについては前方一致もしくはCIDR形式(###.###.###.###/##)が使用できます
例:192.168.0.と設定することにより192.168.0.0~192.168.0.255の範囲でブロックが可能です。

.htaccessファイルの生成

現在の設定内容をApacheの.htaccessで利用可能な形に変換します。

Bulkfeedsへのspam報告(v1.3より廃止)

Bulkfeedsにspam送信元のURLを報告します。
送信されたURLはbulkfeedsのブラックリストを利用するサイトすべてで共有されるので、bulkfeedsを使うすべてのサイトから同様のspamを排除することが可能になります。念のため書きますが、spam発信元でないURLをsubmitすることは慎んでください。 spam報告機能を使うには前準備としてBulkfeeds API Keyを取得しておく必要があります。こちらのBulkfeeds API Key登録フォームに自分のメールアドレスを入力すると、指定したメール宛てにBulkfeeds API Keyが届きます。それをプラグインオプションのBulkfeeds API Keyにセットしておいてください。 1行に1URLという形で入力し「submit」ボタンを押します。

※Bulkfeedsが消滅したため、v1.3より廃止しました

動作確認報告

作者向けに動作環境等を送信することができます。
プラグインの継続的改善のための情報収集にご協力ください。

Tipsと裏技

参照するDNSBLの変更

NP_Blacklistが参照するDNSBLについては変更が可能です。効果的なDNSBLがあればぜひフォーラムでご一報ください

blacklist/blacklist_lib.php(450行目付近)

$iprbl = array('niku.2ch.net', 'list.dsbl.org', 'bsb.spamlookup.net');

blacklist/blacklist_lib.php(465行目付近)

$domainrbl = array('rbl.bulkfeeds.jp', 'url.rbl.jp', 'bsb.spamlookup.net');

「href=...」が3回以上含まれるコメントをはじく

(href=([\w\W\n\r]*?)){3,}

「http...」が3回以上含まれるコメントをはじく

(http([\w\W\n\r]*?)){3,}

全角文字を含まないコメントをはじく

^[[:print:][:cntrl:]]+$

※効き過ぎかも。要検証。不具合を確認した人は報告求む。
※jp9では^や$が各行の行頭、行末にマッチするため、正常に動作しません。
 設定した場合、すべてのコメントがブロックされます。(by hsur)

他のプラグインとの併用

spamは日々進化しており、単純なルールベースのブラックリストだけに頼っているとフィルタを突破される可能性があります。必要に応じて下記のプラグインとの併用を検討してください。

希望事項

  • 指定したドメイン/IPを絶対にspam扱いしないようにする機能(white list) v1.1で対応済み
  • メッセージの日本語化(EUC/UTF-8対応) v1.0で対応済み

バグ

開発履歴

  • version1.3 [2008-05-04] by hsur Read here
    • [Added] ログ消去時などに確認ダイアログが出るようにした
    • [Added] 動作確認フォームを追加
    • [Fixed] bulkfeedsが消滅したので関連機能を全て削除した
    • [Fixed] 127.で終わるIPを誤判定をする問題に対応 (v1.3.1, 2008/06/09)
  • version1.2 [2007-05-04] by hsur Read here
    • [Added] コメント時のemailフィールドもチェック対象にした
  • version1.1 [2007-03-18] by hsur Read here
    • [Added] IPホワイトリスト機能を追加
    • [Fixed] DNSBLの参照が正常に行われていなかった問題を修正
    • [Fixed] IPアドレスの判定が不適切であった問題を修正
    • [Changed] 正規表現判定の/m修飾子を削除
    • [Changed] ソースコードから不要部分を削除
  • version1.0 [2007-02-03] by hsur Read here
    • [Added] .htaccess生成時にorder allow,denyとallow from allを追加
    • [Added] spam判定時、$spamcheckにメッセージを残すようにした。
    • [Added] インタフェイスの日本語化
    • [Changed] Referrerによるブロック機能の廃止
    • [Changed] ファイルのクリーンナップ
    • [Added] ログの自動ローテート機能を追加(最大7日分)
    • [Changed] PreAddCommentとValidateFormへの対応を廃止
  • version0.98 jp9 [2006-11-26] by hsur Read here
    • [Changed] 正規表現に/m修飾子を追加
    • [Added] Ticket処理を追加(CSRF対策)
    • [Added] localhostからのアクセスをspam判定しないようにした
    • [Added] ユーザーがログインしている場合にspam判定しないようにした
    • [Changed] PreSkinParseイベントを廃止
  • version0.98 jp8 [2006-09-30] by hsur Read here
    • [Changed] IPブロックが正常に動作していなかった不具合を修正
    • [Changed] ブロックの際に画面が真っ白になってしまう不具合を修正
    • [Changed] 英語のtypoを修正
    • [Added] 設定ファイルの上書きを防ぐため配布アーカイブに含まれる設定ファイルの名前を変更
    • [Added] インストール時に設定ファイルを自動生成を追加
    • [Added] DNSBLの応答をキャッシュするようにした
    • [Added] 正規表現利用の可否を選択可能にした
    • [Added] magic_quotes_gpc onの環境に対応した
  • version0.98 jp7 [2006-09-16] by hsur Read here
    • [Changed] デフォルトの状態において、リンク付のコメントをブロックしてしまう不具合を修正
    • [Changed] obsoleteなイベントを削除
    • [Added] membermailのないようについてもチェックを行うようにした
  • version0.98 jp6 [2006-05-28] by hsur Read here
    • [Changed] personal blacklistで大文字小文字を区別しないようにした
    • [Changed] 参照するDNSBLを変更
    • [Changed] Personal blacklistのデフォルトを変更
  • version0.98 jp5 [2006-04-29] by hsur Read here
    • [Added] SpamCheckAPI 2に対応
    • [Changed] プラグインオプションTo which URL should spammers be redireted?の挙動の変更
    • [Changed] プラグインオプションEnable ip based blocking?の挙動の変更
  • version0.98 jp4 [2006-03-08] by hsur Read here
    • [Added] ログ表示の際のDNS逆引きを行うかどうかを設定可能に
    • [Changed] プラグインオプション周りを整理
    • [Changed] ソースにまぎれていたおかしな文字を削除
  • version0.98 jp3 [2005-12-10] by hsur Read here
    • [Added] bulkfeeds.netにspamが報告できるようにした
  • version0.98 jp2 [2005-11-12] by hsur Read here
    • [Changed] DNSBLのLookupが行えていないバグを修正
  • version0.98 jp1 [2005-10-14] by hsur Read here
    • [Changed] Blacklistの自動アップデートの無効化
    • [Changed] LookupするDNSBLを追加
    • [Added] 現時点で最新のBlacklistを同梱
 
plugins/np_blacklist.txt · 最終更新: 2011/03/23 21:28 (外部編集)