超メモ帳(Web式)@復活

小説書いたり、絵を描いたり、プログラムやったりするブログ。統失プログラマ。


SPONSORED LINK

pukiwikiにスパムフィルタを導入する。


GW中は管理している同人サイトのWordpressなどのレイアウト変更に当てようと思って、久々にサーバの中身などを整理していたら、昔に設置したpukiwikiに海外からSPAM投稿が入っていてげんなりした。多分、SEOスパムなんじゃないかと思われるのですが賞賛する英文とurlが新規投稿でねじ込まれていたのですよ。

使っていないwikiだしこのまま削除してもいいかなと思ったけど、なんかしゃくなのでSPAMフィルタを導入しておいた。

 

美麻Wikiでシステム的に修正している点 - 美麻Wiki

 

この記事を参考に導入したのだけどわかりにくかったので説明。

 

上記サイトに置かれている下記のファイルをダウンロード。


上記のファイルをpukiwikiのlibライブラリに設置。patchファイルを当てます。patchコマンドの使い方は下記。

% patch plugin.php < plugin.php.patch


これで、ファイルの差分がplugin.phpに当てられます。

 

ipcountryフィルタを使うために照合ファイルをダウンロードします。

 

ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest

 

ダウンロードしたファイルをトップディレクトリに置きます。pukiwiki.ini.phpがあるディレクトリですね。

 

reCAPTCHAを使うためにライブラリを取ってきます。リンクが切れていたのでこちら。

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

ファイルを解凍して、recaptchalib.phpをlibディレクトリに置きます。

 

NetDNSを使うためにダウンロードしてきてNetという名前で設置します。ダウンロードは下記。

 

Net_DNS

 

キャッシュファイルを造ります。これもトップディレクトリですね。

% touch dns_ns.cache
% chmod 777 dns_ns.cache


あとはpukiwiki.ini.phpに下記を追記します。

<?php
define('SPAM_FILTER_COND', '#useragent() or #filename() or #formname() or #atag() or (#onlyeng() and (#urlnum() or #uaunknown())) or #urlbl() or #urlnsbl() or (#url() and #ipdnsbl())');
define('SPAM_FILTER_CAPTCHA_COND', '#acceptlanguage("dummy") or  (#url() and (#onlyeng() or #ipcountry() or #ipdnsbl()))');

define('SPAM_FILTER_RECAPTCHA_PUBLICKEY',  'hogehogehoge');
define('SPAM_FILTER_RECAPTCHA_PRIVATEKEY', 'piyopiyopiyo');


reCAPTCHAの公開鍵と秘密鍵は別途取ってくる必要があります。下記サイトを参照して取得して下さい。

 

Joomla!の道しるべ

 

取得した公開鍵と秘密鍵SPAM_FILTER_RECAPTCHA_PUBLICKEYとSPAM_FILTER_RECAPTCHA_PRIVATEKEYへ置き換えます。

 

これで設定は終了です。記事を新規作成してみてURLを入力した記事を作ろうとすると下記のようにcaptchaが出てくるようならOKです。

 

 

なんだろう、全機能把握してないで組み込んでる。文字化けもでるし、後で何とかしよう。こんな事に貴重な一日費やしてしまった orz

 

プライバシーポリシー免責事項