ベースシステム Edit

  • Pukiwiki Plus! 1.4.6-plus-u2-eucjp

導入プラグイン Edit

rssdiff.inc.php Edit

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

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

mail.in.php Edit

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 Edit

pcommentで、最近投稿されたコメントを任意の位置に表示するためのプラグイン

div.inc.php Edit

任意の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)

のようにして利用する。

プラグインの修正 Edit

article.inc.php Edit

filearticle.inc.php.patch

line_break=1の場合の修正 Edit

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

スパム投稿への対応 Edit

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

設定はpukiwiki.ini.phpで下記のパラメータで禁止正規表現を指定する。

define('PLUGIN_ARTICLE_NGREG',  '/<\/a>|\[\/url\]/i'); 

comment.inc.php Edit

filecomment.inc.php.patch

コメント入力欄行数の指定 Edit

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

設定はpukiwiki.ini.phpで下記のパラメータで行数を指定する。

define('PLUGIN_COMMENT_ROWS_MSG',    2);

スパム投稿への対応 Edit

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

設定はpukiwiki.ini.phpで下記のパラメータで禁止正規表現を指定する。

define('PLUGIN_COMMENT_NGREG',  '/<\/a>|\[\/url\]/i'); 

pcomment.inc.php Edit

filepcomment.inc.php.patch

コメント入力欄行数の指定 Edit

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

設定はpukiwiki.ini.phpで下記のパラメータで行数を指定する。

define('PLUGIN_PCOMMENT_ROWS_MSG',   2);

スパム投稿への対応 Edit

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

設定はpukiwiki.ini.phpで下記のパラメータで禁止正規表現を指定する。

define('PLUGIN_PCOMMENT_NGREG',  '/<\/a>|\[\/url\]/i'); 

rss.inc.php Edit

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

filerss.inc.php.patch

設定はpukiwiki.ini.phpで下記のパラメータでデフォルトのバージョンを指定する。

define('PLUGIN_RSS_VERSION_DEFAULT', '1.0');

attach.inc.php Edit

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

fileattach.inc.php.patch
fileja.lng.php.attach.patch
fileen.lng.php.attach.patch

設定はpukiwiki.ini.phpで下記のパラメータで添付を許可しないファイル名を正規表現で指定する。

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

init.php/file.php Edit

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

lib/init.php へのパッチ fileinit.php.patch
lib/file.php へのパッチ filefile.php.patch

spam_filter.php Edit

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

lib/spam_filter filespam_filter.php
lib/plugin.php へのパッチ fileplugin.php.patch

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

lib/init.php へのパッチ &ref(): File not found: "ini.php.patch" at page "美麻Wikiでシステム的に修正している点";

また、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_NAME', 'ngreg,akismet');

のように指定して、各フィルタをどのプラグインに掛けるかを

define('SPAM_FILTER_NGREG_PLUGIN_NAME', 'edit,comment,pcomment,article');

のように指定します。
この例では正規表現によるNGワードフィルタ(ngreg)を編集(edit),commentなどのプラグインに対して掛けるよう指定しています。

現時点では以下の制限を利用できます

  • ngreg
    正規表現のNGワードで編集内容に対するフィルタ
  • useragent
    正規表現によるHTTP_USER_AGENTでのフィルタ
  • akismet
    Akismetを利用したフィルタ

設定ファイルの修正 Edit

ローカルなアイコンを直接表示させるためにアイコンフォルダを準備 Edit

pukiwiki.ini.php

// ローカルなアイコン管理用
// 管理者がアイコンを置くためのディレクトリ
define('ICON_DIR', 'icon/');
// アイコン用のURIを設定
define('ICON_URI', ROOT_URI . ICON_DIR);

(up)(new)を手軽に入れれるようにする Edit

(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" />',

アイコンフォルダにある画像を簡単に直接表示できるようにする Edit

(icon 【画像ファイル名】)

という場合、アイコン画像のURLが直接書かれるようにする。
default.ini.php ファイルの facemark_rules に追記

// icon replace
'\(icon\s+(\S+)\)' =>' <img alt="$1" src="' . ICON_URI . '$1" />',

refプラグインで画像サイズを取得しないようにする Edit

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

pukiwiki.ini.php

define('PLUGIN_REF_URL_GET_IMAGE_SIZE', FALSE);

コメントの入力欄を2行に設定 Edit

comment,pcomment プラグインの修正をして、コメントの入力欄を指定できるようにしたので、comment,pcomment共に2行に指定。

pukiwiki.ini.php

define('PLUGIN_COMMENT_ROWS_MSG',    2);
define('PLUGIN_PCOMMENT_ROWS_MSG',   2);

ARTICLEプラグインの投稿内容で改行をBRに自動変換しない Edit

pukiwiki.ini.php

define('PLUGIN_ARTICLE_AUTO_BR',     0);

RSSのデフォルト出力バージョンを1.0にする Edit

CSSを変更し、rssdiffプラグインを使ってRSSの出力に差分も表示されるようにしたため、現在は使っていません。

pukiwiki.ini.php

define('PLUGIN_RSS_VERSION_DEFAULT', '1.0');

スキンの設定 Edit

skin/miasa.skin.php というスキン設定ファイルを skin/iridorange.skin.php をベースに修正して作成

上部メニューの表示内容を修正する Edit

ja.lng.php ファイルの内容を修正

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

fileja.lng.php.patch

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

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

という設定で

このページを編集する 最新の修正箇所をみる 更新履歴をみる 新しいページを作る

という表示になります。

本文にページタイトルが出ないようにする Edit

skin/miasa.skin.php ファイルでH1を本文に出さないようにして、サイトタイトルの下のページ名をH1で出すように修正

編集時にはじめからテキスト整形ルールを表示するようにする Edit

skin/miasa.skin.php ファイルで

$_LINK['edit'] = "$script?cmd=edit&amp;help=true&amp;page=$r_page";

を入れて、編集コマンドで最初からhelp=trueとなるように修正

RSSをrssdiffプラグインを使うように変更 Edit

skin/miasa.skin.php ファイルで

$_LINK['rss']  = "$script?cmd=rssdiff";

を入れて、rssdiffプラグインのRSSの出力として使うように修正

スパム対策 Edit

「FrontPage」→「TopPage」に修正 Edit

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

pukiwiki.ini.php

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

「.html」「.htm」のファイルアップロードを禁止 Edit

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

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

pukiwiki.ini.php

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

いくつかのスパムフィルタを使えるspam_filter.phpの導入 Edit

lib/spam_filter.php filespam_filter.php
lib/plugin.php へのパッチ fileplugin.php.patch

を導入します。
spam_filter.phpをlibディレクトリ以下に置き、plugin.phpにplugin.php.patchを当てて同ファイルを置き換えます。
下記のように、利用するスパムフィルタを指定します。ここでは正規表現によるNGワードフィルタだけを導入しています。
他に現在はakismetが利用できます(のつもり)。今後のspam_filter.phpの修正によりフィルタを追加する予定です。

現在導入しているフィルタとその設定です。

  • クライアントHTTP_USER_AGENTが「WWW-Mechanize」等からの書き込みとファイル添付を禁止 [#y6d02f03]
  • 編集した内容に</a>や[/url]が含まれている書き込みを拒否
  • Menu編集スパムが使っていたドメイン、biglobe-ne.comを排除

pukiwiki.ini.php

define('SPAM_FILTER_NAME', 'ngreg,useragent');
define('SPAM_FILTER_NGREG_REG', '/<\/a>|\[\/url\]|http:\/\/www\.biglobe-ne\.com/i');

AタグやphpBB形式のタグ書式でURLが書き込まれていたら、その書き込みをキャンセル Edit

これは前記spam_filter.phpに統合されたため、現在は利用していません。
spam_filter.phpを設置してplugin.phpへのパッチを当ててもらえれば、個別のプラグインへのパッチを当てる必要はないので、spam_filter.phpのほうを利用いただいたほうが簡単です。

articleやcomment,pcommentの内容に、「</a>」と「[/url]」というタグが入っている書き込みを拒否する。

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');

リダイレクトサービスを利用したURLが一定数以上の更新を禁止 Edit

未実装

Proxy経由での書き込みを禁止 Edit

これはまだやらない

Captchaの導入 Edit

怪しい(URLが書いてある、逆引きできないIPからの書き込み、など)書き込みに対してのみ、Captcha(ゆがんだ文字列画像を表示してその内容を入力してもらう)でのチェックを掛ける。
まだ未実装。
ただ、下記サイトでcaptchaのフィルタ自体は公開されてるので、これをベースにさせていただいて修正し、怪しい場合だけ掛けるように修正したい。

自作プラグイン/captcha - teanan.homeip.net - PukiWiki
http://teanan.homeip.net/pukiwiki/?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Fcaptcha

他のWikiサイトでの導入例と本家バージョン向けパッチ Edit

Wiki/PukiWiki/Tips/スパムがウザイ - TOBY SOFT wiki
http://tobysoft.net/wiki/index.php?Wiki%2FPukiWiki%2FTips%2F%A5%B9%A5%D1%A5%E0%A4%AC%A5%A6%A5%B6%A5%A4

質問や要望などコメントがあればどうぞ Edit


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

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