ねむすぎノート
トップ
メニュー
一覧
検索
pukiwiki1.4/plugin/spam_filter.php
をテンプレートにして作成
開始行:
* spam_filter.php [#l5ebe029]
スパムフィルタ系の機能が色々まとまっている便利なライブラ...
条件に対して完全に拒否するのかCAPTCHAを出すのか選べる。
主に編集・コメント・添付する時にフィルタを通す設定ができ...
デフォルトで設定されているDNSBLは終了しているものが多いの...
** ダウンロード [#n687665f]
- [[spam_filter.php - 美麻Wiki:http://www.miasa.info/inde...
- [[recaptchalib.php:http://code.google.com/p/recaptcha/d...
-- [[Google recaptcha:https://www.google.com/recaptcha/in...
- [[delegated-apnic-latest:ftp://ftp.apnic.net/pub/apnic/...
** 手順 [#c3d9880d]
- spam_filter.php
-- EUCなのでUTF-8に保存しなおす。設定はpukiwiki.iniで上書...
-- plugin/内にアップロード
- plugin.php.patch
patch < plugin.php.patch
- init.php.patch
patch < init.php.patch
- recaptchalib.php
-- plugin/内にアップロード
- delegated-apnic-latest
-- /にアップロード
- dns_get_ns.cache という空ファイルを作成
-- /にアップロードし、パーミッションを777に変更
- pukiwiki.iniの変更
細かいフィルタ設定は各自変更することをおすすめします
/////////////////////////////////////////////////
// SpamFilter
//// reCAPTCHA の設定
define('SPAM_FILTER_RECAPTCHA_PUBLICKEY', '各自取得した...
define('SPAM_FILTER_RECAPTCHA_PRIVATEKEY', '各自取得した...
//// スパムと判断する条件を指定する
define('SPAM_FILTER_COND', '#useragent() or #filename() ...
//// CAPTCHAでのチェックをする条件を指定する
define('SPAM_FILTER_CAPTCHA_COND', '#ipcountry() or #ipd...
//// 各フィルタ共通で設定できる指定
// URLでのマッチで自ドメインなどの無視すべきURL(ホワイ...
define('SPAM_FILTER_WHITEREG', '/(rtwiki\.net)/i');
//// filename - アップロードファイル名によるフィルタ
// アップロードを許可しないファイル名の正規表現
define('SPAM_FILTER_FILENAME_REG', '/\.html$|\.htm$|\.ex...
//// ipdnsbl - クライアントのIPをDNSBLでチェック
define('SPAM_FILTER_IPDNSBL_DNS', 'bsb.spamlookup.net');
//// ipbl - クライアントのIPやホスト名によるフィルタ
// 許可しないIPやホスト名の正規表現
define('SPAM_FILTER_IPBL_REG', '/(ezserve8\.net|ubiquity...
//// urlbl - URLがブラックリストに入っているか確認
// URLのブラックリスト ホスト名でもIPでも可
define('SPAM_FILTER_URLBL_REG', '/(kinshi\.domain\.jp|ki...
//// ngreg - 内容の正規表現フィルタ
// コメント中で許可しない内容の正規表現
define('SPAM_FILTER_NGREG_REG', '/(死ね|働け)/i');
//// ipcountry - クライアントのIPの国をチェック
// マッチさせる国を指定する正規表現 JPを追加すると動作確...
define('SPAM_FILTER_IPCOUNTRY_REG', '/(CN|KR|UA|HK|US)/');
** メモ [#ea699d7c]
- acceptlanguageフィルタが10回に1回の割合でWarningを吐く...
- NGREGはNGワード集を参考に作成するといいかも
-- [[スパム対策用 禁止ワード・NGワード集 - Vector:http://...
-- [[ニコニコ生放送 運営NGワード一覧:http://dic.nicovideo...
-- [[放送禁止用語一覧:http://monoroch.net/kinshi/]] 放送...
-- [[輸入禁止ワード一覧:http://help.sekaimon.com/tables/y...
-- HTMLエンティティ系
--- [[THAI CHARACTER:http://www.sprawk.com/unicode/set/26]]
- ipbl候補
-- ''razil\.jp'' p2を経由 http://p2.2ch.net/
-- ''your-server\.de'' 宣伝BOT
-- ''doubleroute\.jp'' plala系
-- ''ict\.ne\.jp'' 伊賀上野ケーブルテレビ
-- ''tottori\.ocn\.ne\.jp'' 鳥取OCN
-- ''aichi\.ocn\.ne\.jp'' 愛知OCN
-- ''ictv\.ne\.jp'' 入間ケーブルテレビ(埼玉県)
-- ''icnet\.ne\.jp'' JCN ジャパンケーブルネット
-- ''em-net\.ne\.jp'' つなぐネットコミュニケーションズ
-- 海外の何か
--- ezserve8\.net|ubiquityservers\.com|purewebtech\.net|c...
** フィルタで拒否したらログを残す [#d90312b9]
上記だけでは実際にフィルタにひっかかっている人がいるのか...
SPAM_FILTER_CONDに引っかかったらログを残す仕様を追加。(S...
ログを置くフォルダ名は変更可能。
- spam_filterフォルダを/に作成。(パーミッション777)
-- 他人に中身のファイルを閲覧されないように、.htaccess .h...
-- CORESERVERの場合、管理画面の「ツール」に「htpasswdの生...
- spam_filter.php 189行目付近を編集
$spamfilter = new SpamFilter($_POST, $plugin);
+ // Client Information
+ $hp = $script;
+ $ua = $_SERVER["HTTP_USER_AGENT"] ? $_SERVER["HTTP_...
+ $addr = $_SERVER['REMOTE_ADDR'];
+ if (! $_SERVER['REMOTE_HOST'])
+ $_SERVER['REMOTE_HOST'] = gethostbyaddr($addr);
+ $host = $_SERVER['REMOTE_HOST'];
+ // Pukiwiki Information
+ $ref = isset($vars['refer']) ? $vars['refer'] : '';
+ $page = isset($vars['page']) ? $vars['page'] : '';
+ $page = $page == '' ? $ref : $page;
- if ($spamfilter->is_spam())
+ if ($spamfilter->is_spam()) {
+ $log = strftime('%y/%m/%d %H:%M:%S') . "\t" . $addr...
+ $log .= $host . "\t" . $page . "\t" . $spam_type . "...
+ $fp = fopen(DATA_HOME . 'spam_filter/' . strftime('%...
+ fwrite($fp, $log);
+ fclose($fp);
die_message( "Spam check failed. Plugin:". $spamf...
+ }
+ return false;
** 参考サイト [#d1b33e1f]
- [[Wiki/PukiWiki/スパム(spam)を防止する方法 - TOBY SOFT ...
#include(parts/feedback,notitle)
終了行:
* spam_filter.php [#l5ebe029]
スパムフィルタ系の機能が色々まとまっている便利なライブラ...
条件に対して完全に拒否するのかCAPTCHAを出すのか選べる。
主に編集・コメント・添付する時にフィルタを通す設定ができ...
デフォルトで設定されているDNSBLは終了しているものが多いの...
** ダウンロード [#n687665f]
- [[spam_filter.php - 美麻Wiki:http://www.miasa.info/inde...
- [[recaptchalib.php:http://code.google.com/p/recaptcha/d...
-- [[Google recaptcha:https://www.google.com/recaptcha/in...
- [[delegated-apnic-latest:ftp://ftp.apnic.net/pub/apnic/...
** 手順 [#c3d9880d]
- spam_filter.php
-- EUCなのでUTF-8に保存しなおす。設定はpukiwiki.iniで上書...
-- plugin/内にアップロード
- plugin.php.patch
patch < plugin.php.patch
- init.php.patch
patch < init.php.patch
- recaptchalib.php
-- plugin/内にアップロード
- delegated-apnic-latest
-- /にアップロード
- dns_get_ns.cache という空ファイルを作成
-- /にアップロードし、パーミッションを777に変更
- pukiwiki.iniの変更
細かいフィルタ設定は各自変更することをおすすめします
/////////////////////////////////////////////////
// SpamFilter
//// reCAPTCHA の設定
define('SPAM_FILTER_RECAPTCHA_PUBLICKEY', '各自取得した...
define('SPAM_FILTER_RECAPTCHA_PRIVATEKEY', '各自取得した...
//// スパムと判断する条件を指定する
define('SPAM_FILTER_COND', '#useragent() or #filename() ...
//// CAPTCHAでのチェックをする条件を指定する
define('SPAM_FILTER_CAPTCHA_COND', '#ipcountry() or #ipd...
//// 各フィルタ共通で設定できる指定
// URLでのマッチで自ドメインなどの無視すべきURL(ホワイ...
define('SPAM_FILTER_WHITEREG', '/(rtwiki\.net)/i');
//// filename - アップロードファイル名によるフィルタ
// アップロードを許可しないファイル名の正規表現
define('SPAM_FILTER_FILENAME_REG', '/\.html$|\.htm$|\.ex...
//// ipdnsbl - クライアントのIPをDNSBLでチェック
define('SPAM_FILTER_IPDNSBL_DNS', 'bsb.spamlookup.net');
//// ipbl - クライアントのIPやホスト名によるフィルタ
// 許可しないIPやホスト名の正規表現
define('SPAM_FILTER_IPBL_REG', '/(ezserve8\.net|ubiquity...
//// urlbl - URLがブラックリストに入っているか確認
// URLのブラックリスト ホスト名でもIPでも可
define('SPAM_FILTER_URLBL_REG', '/(kinshi\.domain\.jp|ki...
//// ngreg - 内容の正規表現フィルタ
// コメント中で許可しない内容の正規表現
define('SPAM_FILTER_NGREG_REG', '/(死ね|働け)/i');
//// ipcountry - クライアントのIPの国をチェック
// マッチさせる国を指定する正規表現 JPを追加すると動作確...
define('SPAM_FILTER_IPCOUNTRY_REG', '/(CN|KR|UA|HK|US)/');
** メモ [#ea699d7c]
- acceptlanguageフィルタが10回に1回の割合でWarningを吐く...
- NGREGはNGワード集を参考に作成するといいかも
-- [[スパム対策用 禁止ワード・NGワード集 - Vector:http://...
-- [[ニコニコ生放送 運営NGワード一覧:http://dic.nicovideo...
-- [[放送禁止用語一覧:http://monoroch.net/kinshi/]] 放送...
-- [[輸入禁止ワード一覧:http://help.sekaimon.com/tables/y...
-- HTMLエンティティ系
--- [[THAI CHARACTER:http://www.sprawk.com/unicode/set/26]]
- ipbl候補
-- ''razil\.jp'' p2を経由 http://p2.2ch.net/
-- ''your-server\.de'' 宣伝BOT
-- ''doubleroute\.jp'' plala系
-- ''ict\.ne\.jp'' 伊賀上野ケーブルテレビ
-- ''tottori\.ocn\.ne\.jp'' 鳥取OCN
-- ''aichi\.ocn\.ne\.jp'' 愛知OCN
-- ''ictv\.ne\.jp'' 入間ケーブルテレビ(埼玉県)
-- ''icnet\.ne\.jp'' JCN ジャパンケーブルネット
-- ''em-net\.ne\.jp'' つなぐネットコミュニケーションズ
-- 海外の何か
--- ezserve8\.net|ubiquityservers\.com|purewebtech\.net|c...
** フィルタで拒否したらログを残す [#d90312b9]
上記だけでは実際にフィルタにひっかかっている人がいるのか...
SPAM_FILTER_CONDに引っかかったらログを残す仕様を追加。(S...
ログを置くフォルダ名は変更可能。
- spam_filterフォルダを/に作成。(パーミッション777)
-- 他人に中身のファイルを閲覧されないように、.htaccess .h...
-- CORESERVERの場合、管理画面の「ツール」に「htpasswdの生...
- spam_filter.php 189行目付近を編集
$spamfilter = new SpamFilter($_POST, $plugin);
+ // Client Information
+ $hp = $script;
+ $ua = $_SERVER["HTTP_USER_AGENT"] ? $_SERVER["HTTP_...
+ $addr = $_SERVER['REMOTE_ADDR'];
+ if (! $_SERVER['REMOTE_HOST'])
+ $_SERVER['REMOTE_HOST'] = gethostbyaddr($addr);
+ $host = $_SERVER['REMOTE_HOST'];
+ // Pukiwiki Information
+ $ref = isset($vars['refer']) ? $vars['refer'] : '';
+ $page = isset($vars['page']) ? $vars['page'] : '';
+ $page = $page == '' ? $ref : $page;
- if ($spamfilter->is_spam())
+ if ($spamfilter->is_spam()) {
+ $log = strftime('%y/%m/%d %H:%M:%S') . "\t" . $addr...
+ $log .= $host . "\t" . $page . "\t" . $spam_type . "...
+ $fp = fopen(DATA_HOME . 'spam_filter/' . strftime('%...
+ fwrite($fp, $log);
+ fclose($fp);
die_message( "Spam check failed. Plugin:". $spamf...
+ }
+ return false;
** 参考サイト [#d1b33e1f]
- [[Wiki/PukiWiki/スパム(spam)を防止する方法 - TOBY SOFT ...
#include(parts/feedback,notitle)
ページ名:
トップ
新規
一覧
検索
最終更新
RSS