#freeze
#contents

*ベースシステム [#c0b35882]
-Pukiwiki Plus! 1.4.6-plus-u2-eucjp

*導入プラグイン [#m797bf29]

**rssdiff.inc.php [#fdd986c5]

http://pctraining.s21.xrea.com/download/rssdiff.inc_php.txt

RSSの出力内容を、現在との差分を本文に入れて出力してくれるプラグイン。
スキンを修正して、標準でこのプラグインの出力がRSSとして扱われるようにする。
**mail.in.php [#b6f9e24d]

http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2Fmail.inc.php

メールフォーム用。
凍結したページからでないと利用できないように制限が掛っているため、実質管理者権限のある人でないと運用できないようになっている。

**recentcomment.inc.php [#wa6bce4f]
pcommentで、最近投稿されたコメントを任意の位置に表示するためのプラグイン

**div.inc.php [#v698df52]
任意のDIV指定を書けるようにするプラグイン
CSSの指定とともに利用することで、トップページのように、本文を2カラムにしたいページで利用。
一部うまく利用できなかったため、修正してある。
CSSは base_3float.css にて
 div#content_right{
         float:right;
         width:48%;
 }
 div#content_left{
         float:left;
         width:48%;
 }
と指定してwrap_content内でさらに左右分割するように指定してあり
 #div(start, id, content_left)
 【左側カラム内容】
 #div(end)
 #div(start, id, content_right)
 【右側カラム内容】
 #div(end)
のようにして利用する。
*プラグインの修正 [#qd9d1213]

**article.inc.php [#te399de7]

&ref(./article.inc.php.patch);

***line_break=1の場合の修正 [#ec382fb5]
改行指定が必要ない設定でも改行文字が入ってしまい、無駄に空行が入ってしまうため、$line_break = 1のときに改行を入れないように修正。

***スパム投稿への対応 [#k22db688]
&color(Maroon){この機能はspam_filter.phpに統合したため、そちらで一括して管理したほうが便利です。};

投稿内容に、指定の正規表現が含まれていた場合に拒否する設定を追加。具体的には例えば</a>や[/url]が含まれている場合に拒否することで、スパム投稿を拒否することができるようになる。

設定はpukiwiki.ini.phpで下記のパラメータで禁止正規表現を指定する。
 define('PLUGIN_ARTICLE_NGREG',  '/<\/a>|\[\/url\]/i'); 

**comment.inc.php [#nb4e09c0]

&ref(./comment.inc.php.patch);

***コメント入力欄行数の指定 [#f5eaa814]
コメント入力欄行数を増やすため、入力欄の行数指定ができるようにして、2行以上の場合はTEXTAREAを利用するように修正。
また、文中の改行を削除してしまうようになっていたため、最後の改行や空行だけ削除するようにし、文中の空行は改行命令に置き換えるように修正。

設定はpukiwiki.ini.phpで下記のパラメータで行数を指定する。
 define('PLUGIN_COMMENT_ROWS_MSG',    2);

***スパム投稿への対応 [#z9e91c61]
&color(Maroon){この機能はspam_filter.phpに統合したため、そちらで一括して管理したほうが便利です。};

投稿内容に、指定の正規表現が含まれていた場合に拒否する設定を追加。具体的には例えば&#60;/a&#62;や&#91;/url&#93;が含まれている場合に拒否することで、スパム投稿を拒否することができるようになる。

設定はpukiwiki.ini.phpで下記のパラメータで禁止正規表現を指定する。
 define('PLUGIN_COMMENT_NGREG',  '/<\/a>|\[\/url\]/i'); 

**pcomment.inc.php [#k7143a16]

&ref(./pcomment.inc.php.patch);

***コメント入力欄行数の指定 [#zd477563]
コメント入力欄行数を増やすため、入力欄の行数指定ができるようにして、2行以上の場合はTEXTAREAを利用するように修正。

設定はpukiwiki.ini.phpで下記のパラメータで行数を指定する。
 define('PLUGIN_PCOMMENT_ROWS_MSG',   2);

***スパム投稿への対応 [#i7b6304d]
&color(Maroon){この機能はspam_filter.phpに統合したため、そちらで一括して管理したほうが便利です。};

投稿内容に、指定の正規表現が含まれていた場合に拒否する設定を追加。具体的には例えば&#60;/a&#62;や&#91;/url&#93;が含まれている場合に拒否することで、スパム投稿を拒否することができるようになる。

設定はpukiwiki.ini.phpで下記のパラメータで禁止正規表現を指定する。
 define('PLUGIN_PCOMMENT_NGREG',  '/<\/a>|\[\/url\]/i'); 

**rss.inc.php [#hf47be3a]
デフォルトのRSSバージョン指定をできるようにして、たとえばデフォルトをRSS1.0にすることで、IE7のRSSアイコンが機能するように修正。

&ref(./rss.inc.php.patch);

設定はpukiwiki.ini.phpで下記のパラメータでデフォルトのバージョンを指定する。
 define('PLUGIN_RSS_VERSION_DEFAULT', '1.0');

**attach.inc.php [#k637527b]
&color(Maroon){この機能はspam_filter.phpに統合したため、そちらで一括して管理したほうが便利です。};

ファイル名が正規表現にマッチしたらアップロードを許可しないように修正。

&ref(./attach.inc.php.patch);
&ref(./ja.lng.php.attach.patch);
&ref(./en.lng.php.attach.patch);

設定はpukiwiki.ini.phpで下記のパラメータで添付を許可しないファイル名を正規表現で指定する。
 define('PLUGIN_ATTACH_UPLOAD_FILEREG', '/\.html$|\.htm$/');

**init.php/file.php [#offddcd4]
スパム投稿の情報を簡単に参照できるようにするため、diffで表示した差分の最後に、編集者のIPやUSER AGENT情報などを表示するように修正。

lib/init.php へのパッチ &ref(./init.php.patch);
lib/file.php へのパッチ &ref(./file.php.patch);

**spam_filter.php [#ofa18e88]
akismet組み込み用の追加を参考に、複数のスパムフィルタを利用できる汎用のフィルタ(のベースになるもの)を作成。

lib/spam_filter &ref(./spam_filter.php); (0.7.5 NSやCountry系フィルタのキャッシュによる高速化)
lib/plugin.php へのパッチ &ref(./plugin.php.patch); (spam_filter 0.7.0以降用)

正規表現によるHTTP_USER_AGENTでのフィルタを利用するためには下記パッチも必要です。

lib/init.php へのパッチ &ref(./init.php.patch);

もしくは、PukiWiki Plus! 1.4.6と1.4.7用および本家のPukiWiki 1.4.7用に、パッチ済みのファイルを準備しましたのでそちらを利用してください。
こちらには下で説明している、akismet.class.phpとrecaptchalib.php、delegated-apnic-latest、PEARのNet_DNSクラスも同梱しましたので、展開したファイルをすべてPukiWikiのルートディレクトリに上書きし、NSのキャッシュ用ファイルdns_get_ns.cacheを書き込み可能(ファイル属性を777)にすることで、そのまま使えるようになります。

-&ref(./1.4.6plus.zip); PukiWiki Plus! 1.4.6用パッチ済みファイル群
-&ref(./1.4.7plus.zip); PukiWiki Plus! 1.4.7用パッチ済みファイル群
-&ref(./1.4.7.zip); PukiWiki 1.4.7用パッチ済みファイル群


urlnsblなどのNSを引くフィルタを導入する場合で、PHP4などのようにdns_get_recordが引けない場合は、PEARのNet_DNSクラスを導入するか、nslookupコマンドを引けるよう環境にしておく必要があります。
また、NS名を引いたキャッシュを保存している「dns_get_ns.cache」という空のファイルを、PukiWikiのトップディレクトリ(pukiwiki.ini.phpがあるディレクトリ)に置いて書き込み可能(ファイル属性を777)にしておいてください。

ipcountryフィルタを導入する場合は
ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest
「delegated-apnic-latest」のファイルをPukiWikiのトップディレクトリ(pukiwiki.ini.phpがあるディレクトリ)におく必要があります。
【うざい国からのアクセスを全て遮断】
http://www.42ch.net/~shutoff/
からも同ファイルをダウンロードできます。

reCAPTCHAを利用するためには、[[PHP Library for reCAPTCHA>http://recaptcha.net/plugins/php/]]から、「recaptchalib.php」をダウンロードして、libにおく必要があります。
そして、[[reCAPTCHA Admin: Login>https://admin.recaptcha.net/accounts/login/?next=/recaptcha/sites/]]から暗号化キーを取得する必要があります。
これらはすべてフリーになっています。

また、Akismetのフィルタを利用するためには
【PukiWiki/Akismetによるspam(スパム)防止機能 - ARK-Web SandBox Wiki】
http://www.ark-web.jp/sandbox/wiki/190.html
を参照の上、「akismet.class.php」を導入する必要があります。


pukiwiki.ini.phpで、利用するフィルタ種を
 define('SPAM_FILTER_COND', '#useragent() or #filename() or #atag() or #ngreg or (#onlyeng() and #urlnum()) or #urlbl() or #urlnsbl()');
のように指定します。
条件の否定、例えばUSER_AGENTの内容に「Mozilla」が含まれて「いない」場合と表現したいときは
 ! #useragent('/Mozilla/') 
という表記で表すことが出来ます。
また、各フィルタをどのプラグインに掛けるかを
 define('SPAM_FILTER_NGREG_PLUGIN_NAME', 'edit,comment,pcomment,article');
のようにカンマで区切って指定出来ます。
そして、各フィルタ毎の設定についても
 define('SPAM_FILTER_NGREG_REG', '/(@mail\.ru|botmetkatres)/i');
のように指定出来ます。
この例では正規表現によるNGワード「@mail.ru」「botmetkatres」のフィルタ(ngreg)を編集(edit),commentなどの書き込みに対して掛けるよう指定しています。
これらの指定は、関数の引数で個々の条件ごとに渡してやることも出来ます。
個々のフィルタの設定がデフォルトである程度書いてあるため、SPAM_FILTER_CONDで下記制限を選択するだけで、使えるようになります。


また、完全に拒否してしまうのではなく、怪しいと思われる場合にはCAPTCHA(歪んだ文字列を入力させてロボットからの入力を拒否する)を使って確認することができます。
 define('SPAM_FILTER_RECAPTCHA_PUBLICKEY',  '【公開鍵のテキスト】');
 define('SPAM_FILTER_RECAPTCHA_PRIVATEKEY', '【秘密鍵のテキスト】');
 define('SPAM_FILTER_CAPTCHA_COND', '#url and (#ipcountry() or #ipdnsbl())');
上から2行で[[reCAPTCHA Admin: Login>https://admin.recaptcha.net/accounts/login/?next=/recaptcha/sites/]]から取得した暗号化キーを設定します。
下の1行では、どの条件にマッチした場合にCAPTCHAでのチェックを掛けるのかを指定します。
この例では、URLが書いてある場合で、中国や韓国からもしくは公開ブラックリストに登録されているIPの場合、CAPTCHAによるチェックがかかるようになります。
CAPTCHAには現在のところ、[[reCAPTCHA>http://recaptcha.net/]]のみ利用出来ます。


SPAM_FILTER_CONDでは「完全に黒」と言い切れる条件や、ボットではなく人が書いてくるためCAPTCHAを抜けてくるようなスパムの条件(urlblやuseragent、filenameなど)を書いておき、SPAM_FILTER_CAPTCHA_CONDではこれだけではスパムとは言い切れないようなものや、誤検出があったときに簡単に救済できるようにしたい場合の条件(urlnumやipcountryなど)を書いておくと良いでしょう。


また、誤検出や書き込み速度の低下、負荷やの低減のため、URLのホワイトリストを設定しておくと良いでしょう。
例えば、ここの「miasa.info」とGoogleのURLは疑わないとするなら
 define('SPAM_FILTER_WHITEREG', '/(miasas\.info|google\.(com|co\.jp))/i');
のように設定します。


現時点では以下の制限を利用できます
- ngreg
正規表現のNGワードで編集内容に対するフィルタ
- url
内容にURLっぽいものが含まれているかチェック
- atag
内容に&#60;/a&#62;や&#91;/url&#93;のようなアンカータグが含まれているかチェック
- onlyeng
内容が半角英数のみ(日本語が入っていない)かチェック
- urlnum
内容に含まれているURLが何個以上かチェック
- ipunknown
クライアントのIPが逆引きできるかチェック
- ips25r
クライアントのIPが動的IPっぽい(S25Rにマッチする)かチェック
書き込みは普通動的IPからなので、トラックバックスパムの判定に使う。
- ipbl
クライアントのIPかホスト名がブラックリストに入っているか確認
- ipdnsbl
クライアントのIPをDNSBL(公開ブラックリスト)でチェック
- ipcountry
クライアントのIPの国がどこかをチェック
- uaunknown
HTTP_USER_AGENTが既知(pukiwiki.ini.phpで$agentsで指定)かチェック
- useragent
正規表現によるHTTP_USER_AGENTでのフィルタ
- filename
正規表現による添付ファイル名でのフィルタ
- formname
form中に存在しないはずの項目(urlやemailなど)があるかチェック
- urlbl
URLがブラックリストに入っているか確認
ただ、ここで標準で入れているURLのブラックリストよりも、本家のスパムフィルタのURLリストのほうが非常によく網羅されているので、そちらのほうが強力です。
- urlcountry
URLのサーバのある国がどこかをチェック
- urldnsbl
URLがDNSBLに入っているか確認
- urlnsbl
URLのNS(ネームサーバ:ドメインの名前を管理しているサーバ)がブラックリストに入っているか確認
NSでブラックリストにしてあるため、ブラックリスト入りしている同じ業者が新しいドメインを取得しても、NSを変更しない限り防げるため、本家のURLブラックリストを使っている場合でも有効です。
- urlnscountry
URLのNSの国がどこかをチェック
- akismet
Akismetを利用したフィルタ


実際の設定例については、
[[いくつかのスパムフィルタを使えるspam_filter.phpの導入>#l03d83a6]]
[[PukiWiki Plus!用のスパムフィルタ spam_filter.php>http://d.hatena.ne.jp/stealthinu/20070516/p2]]
などを参照ください。


また、こちらのページでも、akismetでのチェックに引っかかった場合だけ、reCAPCHAのチェックを掛ける、というこのフィルタの一部利用方法と同じ事が出来るフィルタを書かれています。
誤検出の少ないスパムフィルタを探されている方は、こちらもチェックしてみると良いでしょう。

Plugin/akismet.inc.php - SONOTS Plugin
http://lsx.sourceforge.jp/?Plugin%2Fakismet.inc.php


spam_filter についての質問はこちらへ。
----
- c56t [a] http://blog.360.yahoo.com/blog-OGYUqRI0d6mmL6gDeJXk7CTq_cSRPQ--?cq=1 -- [[ma177zda]] &new{2007-10-20 (土) 00:57:27};
- c83t                   cingular ringtones - http://blog.360.yahoo.com/blog-OGYUqRI0d6mmL6gDeJXk7CTq_cSRPQ--?cq=1 -- [[ma474zda]] &new{2007-10-20 (土) 00:58:21};
- c72t [a] http://blog.360.yahoo.com/blog-AidHeM02fqlWWcn32mjdi6wQ06IxSDo-?cq=1 -- [[ma105zda]] &new{2007-10-20 (土) 01:14:15};
- c925t [a] http://blog.360.yahoo.com/blog-LZffMjkzcqpmLiBjgWmj4o.SKVldPQ--?cq=1 -- [[ma215zda]] &new{2007-10-20 (土) 01:14:23};
- c124t [a] http://blog.360.yahoo.com/blog-XFRpFAg7bqIZhQ_vWLJisxz1e_o-?cq=1 -- [[ma721zda]] &new{2007-10-20 (土) 01:47:33};
- c237t                 free verizon ringtones - http://blog.360.yahoo.com/blog-XFRpFAg7bqIZhQ_vWLJisxz1e_o-?cq=1 -- [[ma928zda]] &new{2007-10-20 (土) 01:47:44};
- c181t [a] http://blog.360.yahoo.com/blog-EKHD8u8ydKqw5NBixrDkFSksMtDSIgI-?cq=1 -- [[ma755zda]] &new{2007-10-20 (土) 02:05:17};
- c124t [a] http://blog.360.yahoo.com/blog-B_pbT641eqi048.qNJTs.9c8UR8-?cq=1 -- [[ma721zda]] &new{2007-10-20 (土) 02:05:30};
- c9t [a] http://blog.360.yahoo.com/blog-WId_UF0laa8rp9lcPAqYpRbSZB1i1xmfkw--?cq=1 -- [[ma944zda]] &new{2007-10-20 (土) 02:37:19};
- c734t [a] http://blog.360.yahoo.com/blog-DBIy_zs7erSX5fE5Z6ythqk8oQ--?cq=1 -- [[ma944zda]] &new{2007-10-20 (土) 02:37:24};
- c469t [a] http://blog.360.yahoo.com/blog-vDcAKGIjdKT0K14bNa6d_LuOaddA?p=2 [/a]  [a] http://blog.360.yahoo.com/blog-WId_UF0laa8rp9lcPAqYpRbSZB1i1xmfkw--?cq=1 -- [[ma656zda]] &new{2007-10-20 (土) 02:52:14};
- c926t [a] http://blog.360.yahoo.com/blog-vDcAKGIjdKT0K14bNa6d_LuOaddA [/a]  [a] http://blog.360.yahoo.com/blog-WId_UF0laa8rp9lcPAqYpRbSZB1i1xmfkw--?cq=1 -- [[ma3zda]] &new{2007-10-20 (土) 02:52:45};
- c376t [a] http://blog.360.yahoo.com/blog-wvrmZBs0dq.UiZxsdNB9c.z6hEo- [/a]  [a] http://blog.360.yahoo.com/blog-wvrmZBs0dq.UiZxsdNB9c.z6hEo-?cq=1 -- [[ma349zda]] &new{2007-10-20 (土) 03:08:22};
- c723t [a] http://blog.360.yahoo.com/blog-wvrmZBs0dq.UiZxsdNB9c.z6hEo-?cq=1 -- [[ma470zda]] &new{2007-10-20 (土) 03:24:07};
- c571t [a] http://blog.360.yahoo.com/blog-Buj7eO07dKU3mhrTGsTKB0QjD2J_6CY- [/a]  [a] http://blog.360.yahoo.com/blog-wvrmZBs0dq.UiZxsdNB9c.z6hEo-?cq=1 -- [[ma131zda]] &new{2007-10-20 (土) 03:24:24};
- c829t [a] http://blog.360.yahoo.com/blog-HfXlQiYwd6LVJKUb0TLfSIfxUes-?cq=1 -- [[ma624zda]] &new{2007-10-20 (土) 03:41:13};
- c769t               free dating service - http://blog.360.yahoo.com/blog-Buj7eO07dKU3mhrTGsTKB0QjD2J_6CY-?cq=1 -- [[ma909zda]] &new{2007-10-20 (土) 03:42:08};
- c457t                     adult dating site - http://blog.360.yahoo.com/blog-HfXlQiYwd6LVJKUb0TLfSIfxUes-?cq=1 -- [[ma316zda]] &new{2007-10-20 (土) 03:59:52};
- c692t                     adult dating site - http://blog.360.yahoo.com/blog-HfXlQiYwd6LVJKUb0TLfSIfxUes-?cq=1 -- [[ma74zda]] &new{2007-10-20 (土) 04:00:37};
- c219t [a] http://blog.360.yahoo.com/blog-Yjharr88erTj2qZ3ysyL0R84xs2Z8qA-?cq=1 -- [[ma4zda]] &new{2007-10-20 (土) 04:17:08};
- c828t [a] http://blog.360.yahoo.com/blog-HFQWyU8ldKu2iACVXTCpQ3RYjjDb [/a]  [a] http://blog.360.yahoo.com/blog-Yjharr88erTj2qZ3ysyL0R84xs2Z8qA-?cq=1 -- [[ma972zda]] &new{2007-10-20 (土) 04:17:20};
- c828t [a] http://blog.360.yahoo.com/blog-OLCGU7YwabKNcX0biOLro2nfJsAcmkU-?cq=1 -- [[ma972zda]] &new{2007-10-20 (土) 04:32:43};
- c465t [a] http://blog.360.yahoo.com/blog-OLCGU7YwabKNcX0biOLro2nfJsAcmkU-?cq=1 -- [[ma125zda]] &new{2007-10-20 (土) 04:33:03};
- c850t [a] http://blog.360.yahoo.com/blog-9bZ.23Y1dL_AquVO_PuXNkVI_TIS.w--?cq=1 -- [[ma379zda]] &new{2007-10-20 (土) 04:48:04};
- c49t [a] http://blog.360.yahoo.com/blog-9bZ.23Y1dL_AquVO_PuXNkVI_TIS.w--?cq=1 -- [[ma525zda]] &new{2007-10-20 (土) 04:48:32};
- c250t           xxx movie - http://blog.360.yahoo.com/blog-uE4YUhAmfqpIJ_zB59oO1BcoLYicYoY-?cq=1 -- [[ma139zda]] &new{2007-10-20 (土) 05:04:24};
- c989t           xxx movie - http://blog.360.yahoo.com/blog-uE4YUhAmfqpIJ_zB59oO1BcoLYicYoY-?cq=1 -- [[ma253zda]] &new{2007-10-20 (土) 05:04:28};
- c901t [a] http://blog.360.yahoo.com/blog-0E.VNzU9bqW.iTlIBXIIRQGvyA--?cq=1 -- [[ma164zda]] &new{2007-10-20 (土) 05:20:54};
- c525t [a] http://blog.360.yahoo.com/blog-oAWZc6k5bqg0XZwCNJ.3xK1F9fY-?cq=1 -- [[ma496zda]] &new{2007-10-20 (土) 05:21:05};
- c314t [a] http://blog.360.yahoo.com/blog-oAWZc6k5bqg0XZwCNJ.3xK1F9fY-?cq=1 -- [[ma681zda]] &new{2007-10-20 (土) 05:37:57};
- c322t               all dvd movie - http://blog.360.yahoo.com/blog-oAWZc6k5bqg0XZwCNJ.3xK1F9fY-?cq=1 -- [[ma136zda]] &new{2007-10-20 (土) 05:38:38};
- c263t [a] http://blog.360.yahoo.com/blog-3QdWBeM8cqWtF0.zPIrmfrjL_ibsZA--?cq=1 -- [[ma260zda]] &new{2007-10-20 (土) 05:55:00};
- c643t           home equity - http://blog.360.yahoo.com/blog-G8U_fxs7frQsblJoTlUHl_VHq3l6cQ--?cq=1 -- [[ma158zda]] &new{2007-10-20 (土) 06:56:20};
- c51t [a] http://blog.360.yahoo.com/blog-kIysVcc6fqg6JKMuQr32EnaGA026q676?p=3 [/a]  [a] http://blog.360.yahoo.com/blog-G8U_fxs7frQsblJoTlUHl_VHq3l6cQ--?cq=1 -- [[ma658zda]] &new{2007-10-20 (土) 07:10:05};
- c309t [a] http://blog.360.yahoo.com/blog-ha4wv.I_dKPhOSAWLKJztEAutg--?cq=1 -- [[ma317zda]] &new{2007-10-20 (土) 07:41:41};
- c942t [a] http://blog.360.yahoo.com/blog-TdsIuoM.dqcKYdOKNnad_Nc_Rls-?cq=1 -- [[ma21zda]] &new{2007-10-20 (土) 07:58:09};
- c936t [a] http://blog.360.yahoo.com/blog-TdsIuoM.dqcKYdOKNnad_Nc_Rls-?cq=1 -- [[ma13zda]] &new{2007-10-20 (土) 08:15:01};
- c593t [a] http://blog.360.yahoo.com/blog-TdsIuoM.dqcKYdOKNnad_Nc_Rls-?cq=1 -- [[ma488zda]] &new{2007-10-20 (土) 08:15:11};
- c398t [a] http://blog.360.yahoo.com/blog-qYwH82g1cqUnWwCqxsuo_R9D2XUf3g--?cq=1 -- [[ma451zda]] &new{2007-10-20 (土) 08:44:15};
- c274t [a] http://blog.360.yahoo.com/blog-qYwH82g1cqUnWwCqxsuo_R9D2XUf3g--?cq=1 -- [[ma202zda]] &new{2007-10-20 (土) 08:44:25};
- c371t [a] http://blog.360.yahoo.com/blog-Ps572n0mcqqrbsphwwNcB439nKTg7g--?cq=1 -- [[ma408zda]] &new{2007-10-20 (土) 08:58:26};
- c377t [a] http://blog.360.yahoo.com/blog-Ps572n0mcqqrbsphwwNcB439nKTg7g--?cq=1 -- [[ma509zda]] &new{2007-10-20 (土) 08:58:30};
- c246t [a] http://blog.360.yahoo.com/blog-yCw.Fhk9brwA8tL2mfkNH4ITEU4-?cq=1 -- [[ma722zda]] &new{2007-10-20 (土) 09:28:19};
- c741t [a] http://blog.360.yahoo.com/blog-yCw.Fhk9brwA8tL2mfkNH4ITEU4- [/a]  [a] http://blog.360.yahoo.com/blog-yCw.Fhk9brwA8tL2mfkNH4ITEU4-?cq=1 -- [[ma878zda]] &new{2007-10-20 (土) 09:28:23};
- c666t [a] http://blog.360.yahoo.com/blog-KUvVzog7dKNyF4pIaE.GCL0URGur9g-- [/a]  [a] http://blog.360.yahoo.com/blog-KUvVzog7dKNyF4pIaE.GCL0URGur9g--?cq=1 -- [[ma330zda]] &new{2007-10-20 (土) 10:00:09};
- c335t [a] http://blog.360.yahoo.com/blog-KUvVzog7dKNyF4pIaE.GCL0URGur9g--?cq=1 -- [[ma710zda]] &new{2007-10-20 (土) 10:00:21};
- c82t [a] http://blog.360.yahoo.com/blog-Eiue8egjbqLmvbfOs17tPiENeQ--?cq=1 -- [[ma367zda]] &new{2007-10-20 (土) 10:44:49};
- c353t [a] http://blog.360.yahoo.com/blog-spkmqtk9erNaJkH4AzPBLN3NBQ-- [/a]  [a] http://blog.360.yahoo.com/blog-spkmqtk9erNaJkH4AzPBLN3NBQ--?cq=1 -- [[ma544zda]] &new{2007-10-20 (土) 10:58:04};
- c309t [a] http://blog.360.yahoo.com/blog-spkmqtk9erNaJkH4AzPBLN3NBQ-- [/a]  [a] http://blog.360.yahoo.com/blog-spkmqtk9erNaJkH4AzPBLN3NBQ--?cq=1 -- [[ma750zda]] &new{2007-10-20 (土) 10:58:12};
- c599t           casino - http://blog.360.yahoo.com/blog-gd.UB8E0f6FQ8D35qG6zNwPzpIjC8b4-?cq=1 -- [[ma354zda]] &new{2007-10-20 (土) 11:13:43};
- c409t [a] http://blog.360.yahoo.com/blog-gd.UB8E0f6FQ8D35qG6zNwPzpIjC8b4-?cq=1 -- [[ma727zda]] &new{2007-10-20 (土) 11:27:16};
- c684t                     top online casino - http://blog.360.yahoo.com/blog-jPXb9ac8fqHjnpsj3_Zhzi0xsqrry8M-?cq=1 -- [[ma977zda]] &new{2007-10-20 (土) 11:28:22};
- c99t [a] http://blog.360.yahoo.com/blog-jPXb9ac8fqHjnpsj3_Zhzi0xsqrry8M-?cq=1 -- [[ma31zda]] &new{2007-10-20 (土) 11:42:42};
- c168t [a] http://blog.360.yahoo.com/blog-jPXb9ac8fqHjnpsj3_Zhzi0xsqrry8M-?cq=1 -- [[ma524zda]] &new{2007-10-20 (土) 11:43:02};
- c648t [a] http://blog.360.yahoo.com/blog-dQGRdps7dK4ql2_pUTu8MzVlyDzy0D0-?cq=1 -- [[ma313zda]] &new{2007-10-20 (土) 11:58:16};
- c684t             casino on net - http://blog.360.yahoo.com/blog-dQGRdps7dK4ql2_pUTu8MzVlyDzy0D0-?cq=1 -- [[ma977zda]] &new{2007-10-20 (土) 11:59:18};
- c903t [a] http://blog.360.yahoo.com/blog-ipBZsIE.d6PUI_bTl72tZOuuf2NR?p=4 [/a]  [a] http://blog.360.yahoo.com/blog-WR2nGDs5bqGVdJXtAsyrgUcxcg--?cq=1 -- [[ma275zda]] &new{2007-10-20 (土) 12:14:37};
- c831t [a] http://blog.360.yahoo.com/blog-WR2nGDs5bqGVdJXtAsyrgUcxcg--?cq=1 -- [[ma15zda]] &new{2007-10-20 (土) 12:27:27};
- c109t           insurance company - http://blog.360.yahoo.com/blog-WR2nGDs5bqGVdJXtAsyrgUcxcg--?cq=1 -- [[ma820zda]] &new{2007-10-20 (土) 12:28:09};
- c46t [a] http://blog.360.yahoo.com/blog-9ZEwNLkwd6NgftcIoa_156cKfg-- [/a]  [a] http://blog.360.yahoo.com/blog-9ZEwNLkwd6NgftcIoa_156cKfg--?cq=1 -- [[ma669zda]] &new{2007-10-20 (土) 12:40:06};
- c447t [a] http://blog.360.yahoo.com/blog-ie.WNIAieqjhEC4niAeNpksIEQ--?cq=1 -- [[ma236zda]] &new{2007-10-20 (土) 12:52:29};
- c304t         cingular ringtone - http://blog.360.yahoo.com/blog-ie.WNIAieqjhEC4niAeNpksIEQ--?cq=1 -- [[ma863zda]] &new{2007-10-20 (土) 12:54:59};
- c245t [a] http://blog.360.yahoo.com/blog-ie.WNIAieqjhEC4niAeNpksIEQ--?cq=1 -- [[ma839zda]] &new{2007-10-20 (土) 13:06:01};
- c327t [a] http://blog.360.yahoo.com/blog-mflZT9AheqRAt1c90wtvEqUvnQ--?cq=1 -- [[ma707zda]] &new{2007-10-20 (土) 13:06:04};
- c197t [a] http://blog.360.yahoo.com/blog-mflZT9AheqRAt1c90wtvEqUvnQ--?cq=1 -- [[ma785zda]] &new{2007-10-20 (土) 13:19:28};
- c195t           polyphonic ringtone - http://blog.360.yahoo.com/blog-mflZT9AheqRAt1c90wtvEqUvnQ--?cq=1 -- [[ma800zda]] &new{2007-10-20 (土) 13:20:06};
- c906t         lindsay lohan ringtone - http://blog.360.yahoo.com/blog-_yYsVPI3dLT..FqgOUpog9zVfSZg?p=3  mp3 ringtone - http://blog.360.yahoo.com/blog-_yYsVPI3dLT..FqgOUpog9zVfSZg?p=2 -- [[ma423zda]] &new{2007-10-20 (土) 13:34:16};
- c436t [a] http://blog.360.yahoo.com/blog-MTMZ_w8ncqV3Tej0K77ofLHlxRZQf5RT5dA-?cq=1 -- [[ma358zda]] &new{2007-10-20 (土) 13:48:08};
- c928t           buy viagra cheap - http://blog.360.yahoo.com/blog-MTMZ_w8ncqV3Tej0K77ofLHlxRZQf5RT5dA-?cq=1 -- [[ma11zda]] &new{2007-10-20 (土) 13:49:10};
- c55t               viagra order - http://blog.360.yahoo.com/blog-Y3Vk7Hw9frXVJwEZDaaDca5Gow--?cq=1 -- [[ma65zda]] &new{2007-10-20 (土) 14:18:11};
- c517t               viagra order - http://blog.360.yahoo.com/blog-Y3Vk7Hw9frXVJwEZDaaDca5Gow--?cq=1 -- [[ma999zda]] &new{2007-10-20 (土) 14:18:58};

#comment


*設定ファイルの修正 [#k528c2ed]
**ローカルなアイコンを直接表示させるためにアイコンフォルダを準備 [#m5a82e55]
pukiwiki.ini.php
 // ローカルなアイコン管理用
 // 管理者がアイコンを置くためのディレクトリ
 define('ICON_DIR', 'icon/');
 // アイコン用のURIを設定
 define('ICON_URI', ROOT_URI . ICON_DIR);

**(up)や(new)を手軽に入れれるようにする [#hdc1a6df]
 (up) (new)
という表記で簡単にアイコンを書けるようにする。
default.ini.php ファイルの facemark_rules に追記
 // new up marks
 '(\(new\))'     => ' <img alt="$1" src="' . ICON_URI . 'new.jpg" />',
 '(\(up\))'      => ' <img alt="$1" src="' . ICON_URI . 'up.jpg" />',
 '(\(star\))'    => ' <img alt="$1" src="' . ICON_URI . 'star.gif" />',

**アイコンフォルダにある画像を簡単に直接表示できるようにする [#ka31093a]
 (icon 【画像ファイル名】)
という場合、アイコン画像のURLが直接書かれるようにする。
default.ini.php ファイルの facemark_rules に追記
 // icon replace
 '\(icon\s+(\S+)\)' =>' <img alt="$1" src="' . ICON_URI . '$1" />',

**refプラグインで画像サイズを取得しないようにする [#s5d276bb]
refプラグインで画像が表示する場合、デフォルトでは画像サイズを得るようになっているが、取得できない画像や時間がかかるものがある場合、そこでサイズを得るために読み込もうとするため、非常に遅くなってしまう問題が起こる。
URL指定時に画像サイズを取得するかを決める PLUGIN_REF_URL_GET_IMAGE_SIZE を画像サイズを取得しないように変更。

pukiwiki.ini.php
 define('PLUGIN_REF_URL_GET_IMAGE_SIZE', FALSE);
**コメントの入力欄を2行に設定 [#p6566411]
comment,pcomment プラグインの修正をして、コメントの入力欄を指定できるようにしたので、comment,pcomment共に2行に指定。

pukiwiki.ini.php
 define('PLUGIN_COMMENT_ROWS_MSG',    2);
 define('PLUGIN_PCOMMENT_ROWS_MSG',   2);

**ARTICLEプラグインの投稿内容で改行をBRに自動変換しない [#ibe298e3]
pukiwiki.ini.php
 define('PLUGIN_ARTICLE_AUTO_BR',     0);

**RSSのデフォルト出力バージョンを1.0にする [#cceac110]
&color(Maroon){CSSを変更し、rssdiffプラグインを使ってRSSの出力に差分も表示されるようにしたため、現在は使っていません。};

pukiwiki.ini.php
 define('PLUGIN_RSS_VERSION_DEFAULT', '1.0');
*スキンの設定 [#n2d7faf5]
skin/miasa.skin.php というスキン設定ファイルを skin/iridorange.skin.php をベースに修正して作成

**上部メニューの表示内容を修正する [#g590d46a]
ja.lng.php ファイルの内容を修正

「編集」→「このページを編集する」
「バックアップ」→「更新履歴をみる」
「差分」→「最新の修正箇所をみる」
など、説明をわかりやすいように変更。

&ref(./ja.lng.php.patch);

Navi2を利用しているため、Navigationページを修正してメニュー内容を変更

 -edit
 -diff
 -backup
 -new
 --rename
 --upload
 --copy
 --freeze
 --unfreeze

という設定で
 このページを編集する 最新の修正箇所をみる 更新履歴をみる 新しいページを作る
という表示になります。
**本文にページタイトルが出ないようにする [#q07ad452]
skin/miasa.skin.php ファイルでH1を本文に出さないようにして、サイトタイトルの下のページ名をH1で出すように修正

**編集時にはじめからテキスト整形ルールを表示するようにする [#w87fe51b]
skin/miasa.skin.php ファイルで
 $_LINK['edit'] = "$script?cmd=edit&amp;help=true&amp;page=$r_page";
を入れて、編集コマンドで最初からhelp=trueとなるように修正

**RSSをrssdiffプラグインを使うように変更 [#w87fe51b]
skin/miasa.skin.php ファイルで
 $_LINK['rss']  = "$script?cmd=rssdiff";
を入れて、rssdiffプラグインのRSSの出力として使うように修正

*スパム対策 [#f9956689]

**「FrontPage」→「TopPage」に修正 [#cb252411]
pukiwiki.ini.phpで「$defaultpage」を「FrontPage」→「TopPage」に修正。
スパマーはFrontPageで検索してターゲットを探している場合が多いようなので、FrontPageという名前を使わないようにしました。

pukiwiki.ini.php
 $defaultpage  = 'TopPage';     // トップページ / 既定のページ

**タイムスタンプを変更しないで修正を出来なくする [#r994d6d3]
URL書き換えスパムが、タイムスタンプを変更しないでこっそり変更してくるため、タイムスタンプを変更しないで修正が出来ないように修正。

pukiwiki.ini.php
 $notimeupdate = 2;

**いくつかのスパムフィルタを使えるspam_filter.phpの導入 [#l03d83a6]
lib/spam_filter.php &ref(./spam_filter.php);
lib/plugin.php へのパッチ &ref(./plugin.php.patch);

および、正規表現によるHTTP_USER_AGENTでのフィルタを利用するためのパッチ
lib/init.php へのパッチ &ref(./init.php.patch);

および、最終編集者の情報を知るためのパッチ
lib/file.php へのパッチ &ref(./file.php.patch);

を導入します。


spam_filter.phpをlibディレクトリ以下に置きます。
plugin.phpにplugin.php.patchを当てて同ファイルを置き換えます。同様にinit.phpとfile.phpもパッチを当てます。


ipcountryフィルタを使うため、
ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest
のファイルをPukiWikiのトップディレクトリ(pukiwiki.ini.phpがあるディレクトリ)に置きます。


reCAPTCHAによるCAPTCHAを使うため、
[[PHP Library for reCAPTCHA>http://recaptcha.net/plugins/php/]]からrecaptchalib.phpをlibディレクトリ以下に置きます。


NS系フィルタを使うため、PEARのNet_DNS(PEAR :: Package :: Net_DNS http://pear.php.net/package/Net_DNS)をダウンロードして、トップディレクトリにNetというディレクトリ名に変更して置きます。もしくは普通にPEARのライブラリを置く場所にインストールしても良いです。
また、キャッシュ用のdns_get_ns.cacheというファイルをtouchで作って、chmod a+wでファイル属性を777にしておきます。


下記のように、利用するスパムフィルタを指定します。

pukiwiki.ini.php
 define('SPAM_FILTER_COND', '#useragent() or #filename() or #formname() or #atag() or (#onlyeng() and #urlnum()) or #urlbl() or #urlnsbl()');
 define('SPAM_FILTER_CAPTCHA_COND', '#url and (#ipcountry() or #ipdnsbl())');
 define('SPAM_FILTER_WHITEREG', '/(miasa\.info|hakuba\.jp|hakuba\.ne\.jp|nagano\.jp|miasa\.ne\.jp/i');
 define('SPAM_FILTER_RECAPTCHA_PUBLICKEY',  '【公開鍵】');
 define('SPAM_FILTER_RECAPTCHA_PRIVATEKEY', '【秘密鍵】');
現在導入しているフィルタとその設定です。

-拒否
--クライアントHTTP_USER_AGENTが「WWW-Mechanize」「libwww-perl」等からの書き込みとファイル添付を拒否
--添付ファイル名拡張子が「.html」「.htm」の添付を拒否
--フォームに存在しないはずのurlやemailという名前の項目があったら拒否
--編集した内容に&#60;/a&#62;や&#91;/url&#93;が含まれている書き込みを拒否
--内容に日本語がなくてURLが3件以上ある書き込みを拒否
--URLのブラックリストで拒否(ブラックリストはデフォルト)
--URLのネームサーバのブラックリストで拒否(ブラックリストはデフォルト、主に中国のレンタルサーバNS)
-CAPCHAでチェック
--URLが書いてあってかつ、中国韓国ウクライナからか、公開ブラックリスト(オープンプロクシなど)からの書き込み


**スパム投稿の情報を参照できるパッチを導入 [#jb94dc7c]
[[init.php/file.php>#offddcd4]]
スパム投稿の情報を簡単に参照できるようにするため、diffで表示した差分の最後に、編集者のIPやUSER AGENT情報などを表示するように修正。

**AタグやphpBB形式のタグ書式でURLが書き込まれていたら、その書き込みをキャンセル [#n92e1cd8]
&color(Maroon){これは前記spam_filter.phpに統合されたため、現在は利用していません。};
&color(Maroon){spam_filter.phpを設置してplugin.phpへのパッチを当ててもらえれば、個別のプラグインへのパッチを当てる必要はないので、spam_filter.phpのほうを利用いただいたほうが簡単です。};

articleやcomment,pcommentの内容に、「&#60;/a&#62;」と「&#91;/url&#93;」というタグが入っている書き込みを拒否する。

article.inc.php,comment.inc.php,pcomment.inc.php プラグインの修正と、禁止パラメータの指定。

pukiwiki.ini.php
 define('PLUGIN_COMMENT_NGREG',  '/<\/a>|\[\/url\]/i');
 define('PLUGIN_PCOMMENT_NGREG', '/<\/a>|\[\/url\]/i');
 define('PLUGIN_ARTICLE_NGREG',  '/<\/a>|\[\/url\]/i');

**「.html」「.htm」のファイルアップロードを禁止 [#vd543a94]
&color(Maroon){これは前記spam_filter.phpに統合されたため、現在は利用していません。};
&color(Maroon){spam_filter.phpを設置してplugin.phpへのパッチを当ててもらえれば、個別のプラグインへのパッチを当てる必要はないので、spam_filter.phpのほうを利用いただいたほうが簡単です。};

拡張子がHTMLファイルのアップロードを禁止しました。

attach.inc.php プラグインの修正と、禁止パラメータの指定。

pukiwiki.ini.php
 define('PLUGIN_ATTACH_UPLOAD_FILEREG', '/\.html$|\.htm$/');

**リダイレクトサービスを利用したURLが一定数以上の更新を禁止 [#pa254163]
本家のURLリストからリダイレクトサービスの部分を引いてきて、それだけ禁止にできるようにしたい。
というか、本家のURLブラックリストを利用できるようにしたいが、まだ手をつけてない。

**他のWikiサイトでの導入例と本家バージョン向けパッチ [#z824c918]
Wiki/PukiWiki/スパム(spam)を防止する方法 - TOBY SOFT wiki
http://tobysoft.net/wiki/index.php?Wiki%2FPukiWiki%2F%A5%B9%A5%D1%A5%E0%28spam%29%A4%F2%CB%C9%BB%DF%A4%B9%A4%EB%CA%FD%CB%A1


*質問や要望などコメントがあればどうぞ [#n79cf808]
- 他のWikiサイトでの導入例と本家バージョン向けパッチ ですけど、
Wiki/PukiWiki/スパム(spam)を防止する方法 - TOBY SOFT wiki
http://tobysoft.net/wiki/index.php?Wiki%2FPukiWiki%2F%A5%B9%A5%D1%A5%E0%28spam%29%A4%F2%CB%C9%BB%DF%A4%B9%A4%EB%CA%FD%CB%A1
に変わってるみたいです --  &new{2007-06-18 (月) 09:37:47};
- ありがとうございます。リンク先を修正しました。 -- [[さとう]] &new{2007-06-19 (火) 10:07:53};
- Nice site!
http://jwnbmmat.com/dqeq/vhzs.html | http://wkapzxut.com/exaa/ulog.html -- [[Pamela]] &new{2007-07-30 (月) 20:31:27};
- ↑すごく久しぶりにスパムが抜けてきました。
が、このURLは存在していないし、ドメインも取得されていないようです。
もしかして時限式なのか?つまり、書き込んでおいて、後からドメインを取得してURLのページを作るのかと思い、記録代わりに残しておきたいと思います。 -- [[さとう]] &new{2007-07-31 (火) 01:35:41};
- spam_filter.php はtrackerには使えないのでしょうか?
trackerスパムに対してまったく機能しません。 -- [[sel]] &new{2007-09-02 (日) 22:48:16};
- 良く確認していませんが、trackerの「内容」について検査するフィルタは上手く動かない可能性はあります。
「内容」を示すフィールド名が'msg'ではない場合、そうなります。 -- [[さとう]] &new{2007-09-03 (月) 16:32:44};

#comment

----
このページは管理者しか編集できないように制限を掛けています。