PukiWiki/プロキシ経由の編集を禁止
※この情報は古いので、以下のURLを参照してください。
http://pukiwiki.sourceforge.jp/dev/?PukiWiki%2F1.4%2FProxy
近々書き直します。
概要 †
プロキシ経由の荒らしなどの対処のため、アクセス制限をかけたい場合があるが、PukiWikiにはバージョン1.4.7までには標準でそのような機能は提供されていない。
そこで、スクリプトを改造して対処することにする。
できること †
- プロクシ経由を制限
- リファラーで制限
- ホストの範囲で制限
- 投稿が英字だけだったら制限
- 共有NGワードで制限
- ※投稿項目別に設定可能、投稿項目は自動判別します。判別できなかった時はチェックしません。
- 指定した項目(ポストデータ)に特定のキーワードが無い場合NG(認証機能)
- NG時ログ記録機能
参考にしたサイト †
PHP用スパム検出ライブラリ
訪問者をチェックするPHPスクリプト
手順 †
- PHP用スパム検出ライブラリから「spam_php_lib_v003.zip」をダウンロードする。
- 解凍して中身をチェックする。
- 圧縮ファイルの中にある「spam_check_class.txt」および「spam_config.php」を、自分のPukiwiのpluginディレクトリに文字コードEUC(改行LF)でASCモードでアップロードする。
- pluginフォルダ内にtmpフォルダを作成し、パーミッションを777に変更する。(ここにエラーログが出力される。)
- plugin/edit.inc.phpを以下のように変更。
(9行目)
・利用条件に従い、スパム検出ライブラリ提供サイトのURLを書く。// PHP用スパム検出ライブラリ - http://bbslabo.breeze.jp/c001_spam_lib_php.htm
(16行目)
・スパム検出ライブラリを呼び出す処理を書く。function plugin_edit_action() { global $vars, $_title_edit, $load_template_func; if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
↓function plugin_edit_action() { global $vars, $_title_edit, $load_template_func; include("./spam_config.php"); // スパム検出ライブラリ if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
- プロキシを経由せずにページ編集してみる。編集画面が出てくることを確認する。
- プロキシを経由してページ編集してみる。編集画面が出てこないで、代わりにエラー画面が表示されることを確認する。
- 好みに応じて「spam_config.php」の40行目付近を設定する。
$check_flag = array( "name"=> 1 ,"host"=> 1 ,"title"=> 1 ,"home"=> 1 ,"mail"=> 1 ,"message"=> 2 ,"proxy" =>1 ,"referer" =>0 ,"log_write" =>"./POST_DENY.txt" );
このページのURL: