- バックアップ一覧
- ソース を表示
- PukiWiki/Akismetによるspam(スパム)防止機能 は削除されています。
- 1 (2006-12-12 (火) 18:52:03)
- 2 (2006-12-12 (火) 18:52:03)
- 3 (2006-12-12 (火) 22:14:11)
- 4 (2006-12-13 (水) 17:23:10)
- 5 (2006-12-13 (水) 17:23:10)
- 6 (2006-12-13 (水) 17:23:10)
- 7 (2006-12-13 (水) 17:23:10)
- 8 (2006-12-13 (水) 17:23:10)
- 9 (2006-12-13 (水) 17:23:10)
- 10 (2007-02-15 (木) 17:21:54)
- 11 (2007-02-23 (金) 12:33:48)
- 12 (2007-02-23 (金) 12:40:52)
- 13 (2007-02-23 (金) 16:41:35)
- 14 (2007-03-29 (木) 16:40:38)
- 15 (2007-04-20 (金) 15:25:54)
- 16 (2007-05-12 (土) 19:41:04)
- 17 (2007-05-28 (月) 13:15:34)
- 18 (2007-05-29 (火) 10:59:15)
- 19 (2007-05-29 (火) 14:57:52)
- 20 (2007-06-01 (金) 10:27:48)
- 21 (2007-06-02 (土) 23:41:41)
- 22 (2007-06-03 (日) 10:13:52)
- 23 (2007-06-04 (月) 10:42:47)
PukiWiki/Akismetによるspam(スパム)防止機能?
見習い中の小沼です。
スパム防止用のPukiwikiライブラリを作成しました。
spam(スパム)対策が必要になった契機 †
当ホームページの中にアークウェブ プロジェクト管理方法ご紹介?というページがあります。
そのページにPukiWikiのプラグインであるtrackerを置いているのですが、そこが今月(2006年12月)の頭ごろからスパムの標的になってしまいました。
ひどいときは一日に20件近く投稿されていました。
会社のWebサイトがスパムだらけになってしまったら、まるでメンテナンスができていないような印象を与えてしまい、会社のイメージを大きく傷つけます。
かといって、毎日手作業でスパム投稿を削除していたのでは大変ですので、今回PukiWikiのスパム防止機能を作成することになりました。
Akismetについて †
Akismetというスパムチェック用のWebAPIがあります。
http://akismet.com/development/
今回はspam対策にこのAPIを利用させていただきました。
対策方法 †
今回作成した機能を利用される方は以下の手順をおこなってください。
事前準備 †
- webapi登録
- まずAkismetにユーザ登録をする必要があります。
- 以下のページからユーザ登録をおこない、APIキーを取得してください。
http://wordpress.com/api-keys/
- 以下のページからユーザ登録をおこない、APIキーを取得してください。
- まずAkismetにユーザ登録をする必要があります。
- Akismetクラスダウンロード
- 以下のページからPHP4用のAkismetクラスをダウンロードしてください。
http://miphp.net/blog/view/php4_akismet_class
- 以下のページからPHP4用のAkismetクラスをダウンロードしてください。
- ライブラリをダウンロード
- ここからダウンロードしてください。
#ref(): File not found: "akismet_filter.php" at page "PukiWiki/Akismetによるspam(スパム)防止機能"
- ここからダウンロードしてください。
ファイル書き換え †
いくつか書き換えが必要な箇所があります。
- akismet_filter
- 先ほどダウンロードしたakismet_fileter.phpに以下のような記述があります。
/* * 使用時に以下の定数を書き換えてください。 */ //チェック対象とするプラグイン名。カンマ区切り define('PLUGIN_NAME_WITH_AKISMET_CHECK', 'comment,tracker'); //Akismetで取得する。APIキー define('API_KEY', ''); //あなたのサイトのURL define('URL','http://ark-web.jp'); //あなたのサイトのパーマリンク define('PERMA_LINK','http://ark-web.jp');
- ここを適切な値で書き換えてください。
- 先ほどダウンロードしたakismet_fileter.phpに以下のような記述があります。
- plugin.php
- actionが呼ばれたときに、スパムチェック機能が呼び出されるように、plugin.phpを書き換える必要があります。
- plugin.phpの中にdo_plugin_action()という関数があります。その中にakismet_filter.phpを呼び出す記述をしてください。以下のようになると思います。
function do_plugin_action($name) { if (! exist_plugin_action($name)) return array(); if(do_plugin_init($name) === FALSE) die_message('Plugin init failed: ' . $name); //Akismet Spam Filter require_once(LIB_DIR . 'akismet_filter.php'); if ( is_spam_message($_POST, $name) == "1" ) die_message("Spam check faild. Plugin:$name"); $retvar = call_user_func('plugin_' . $name . '_action'); ...略
- plugin.phpの中にdo_plugin_action()という関数があります。その中にakismet_filter.phpを呼び出す記述をしてください。以下のようになると思います。
- actionが呼ばれたときに、スパムチェック機能が呼び出されるように、plugin.phpを書き換える必要があります。
ファイルのアップロード †
- ダウンロードしたakismet(Akismet.class.php )と、akismet_fileter.phpをpukiwikiのライブラリフォルダに配置してください。
pukiwiki/lib/Akismet.class.php pukiwiki/lib/akismet_fileter.php
これで設定は全てです。
画面から操作し、正しく動くことを確認してください。