NP_Blacklist.php (JP)
NGワードとDNSBLを利用してコメント・トラックバックspamを防ぐプラグイン。
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
インストール方法
Zipファイルを展開して、中身をNucleusのpluginsディレクトリにアップロードする
(プラグインフォルダ)/blacklist/settings
および、(プラグインフォルダ)/blacklist/cache
ディレクトリのパーミッションをphpから読み書き可能に変更する。(アップデートの場合など、ディレクトリ内に既にファイルが存在する場合にはそれらのファイルも読み書き可能にしておく必要があります。)
(例: ディレクトリ777, ファイル666)
管理画面からBlacklist,AddSpamCheckEventの2つのプラグインをインストールする
このプラグインの使い方
スキン/テンプレートへの記述
スキン、テンプレートへの記述はありません。
インストールすると設定にしたがってspamをブロックするようになります。
オプション
プラグインを有効にする – プラグイン全体の機能を有効にするか?
ブラックリストに該当した場合のリダイレクト先 – spam判定をした場合に表示するURL
(空欄の場合には403 Forbidden
を表示します)
IPによる防御を有効にするか? – IPアドレスによるspam判定を有効にするか
同一IPから何度spamを受信したらIPブラックリストに追加するか? – spamと判定される行為を何回以上行った場合、送信者のIPをブラックリストに追加するか?
Bulkfeeds API Key – BulkfeedsのAPI key(spam報告を行う際に必要)(v1.3より廃止)
DNS逆引きをスキップするか? – IPアドレスをドメイン名として表示する機能を無効にするかどうか?
(負荷が大きいためOnを推奨)
管理画面
NP_Blacklistには設定を行うための独自の管理画面があります。
NGワード編集 – 自分独自のNGワードを設定します
NGワードのテスト – 設定したNGワードの動作確認を行います
IPホワイトリスト編集 – 特別に許可しているipアドレスを表示します
IPブラックリスト編集 – ブロックしているipアドレスを表示します
ブラックリスト動作ログ – NP_Blacklistがブロックした履歴を表示します
プラグインオプション – NP_Blacklistのプラグインオプションを設定します
.htaccessファイルの生成 – 現在の設定を.htaccessで利用可能な形式で出力します
Bulkfeedsへのspam報告 – Bulkfeedsにspam送信元のURLを報告します(v1.3より廃止)
動作確認報告 – 作者に動作確認報告を送ります
NGワード編集
画面上部にあるフォームからNGワードを登録することができます。
NGワード – NGワードを登録します
コメント – NGワードについてのメモを入力することができます
正規表現を有効にするか? – 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回以上含まれるコメントをはじく
全角文字を含まないコメントをはじく
^[[:print:][:cntrl:]]+$
※効き過ぎかも。要検証。不具合を確認した人は報告求む。
※jp9では^や$が各行の行頭、行末にマッチするため、正常に動作しません。
設定した場合、すべてのコメントがブロックされます。(by hsur)
他のプラグインとの併用
spamは日々進化しており、単純なルールベースのブラックリストだけに頼っているとフィルタを突破される可能性があります。必要に応じて下記のプラグインとの併用を検討してください。
併用可能なspam対策プラグイン
学習系
ウェブサービス系
ルールベース系
画像認証系
投稿フォーム改良系
希望事項
バグ
開発履歴
-
[Added] ログ消去時などに確認ダイアログが出るようにした
[Added] 動作確認フォームを追加
[Fixed] bulkfeedsが消滅したので関連機能を全て削除した
[Fixed] 127.で終わるIPを誤判定をする問題に対応 (v1.3.1, 2008/06/09)
-
[Added] IPホワイトリスト機能を追加
[Fixed] DNSBLの参照が正常に行われていなかった問題を修正
[Fixed] IPアドレスの判定が不適切であった問題を修正
[Changed] 正規表現判定の/m修飾子を削除
[Changed] ソースコードから不要部分を削除
-
[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
version0.98 jp5 [2006-04-29] by hsur
Read here
version0.98 jp4 [2006-03-08] by hsur
Read here
[Added] ログ表示の際のDNS逆引きを行うかどうかを設定可能に
[Changed] プラグインオプション周りを整理
[Changed] ソースにまぎれていたおかしな文字を削除
version0.98 jp3 [2005-12-10] by hsur
Read here
version0.98 jp2 [2005-11-12] by hsur
Read here
version0.98 jp1 [2005-10-14] by hsur
Read here
[Changed] Blacklistの自動アップデートの無効化
[Changed] LookupするDNSBLを追加
[Added] 現時点で最新のBlacklistを同梱