PukiWiki/プロキシ経由の編集を禁止 のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PukiWiki/プロキシ経由の編集を禁止 へ行く。
- 1 (2006-11-02 (木) 18:22:13)
- 2 (2006-11-02 (木) 22:53:20)
概要 †
プロキシ経由の荒らしなどの対処のため、アクセス制限をかけたい場合があるが、Pukiwikiには2006年11月現在、標準でそのような機能は提供されていない。
スクリプトを改造して対処することにする。
できること †
- プロクシ経由を制限
- リファラーで制限
- ホストの範囲で制限
- 投稿が英字だけだったら制限
- 共有NGワードで制限
- ※投稿項目別に設定可能、投稿項目は自動判別します。判別できなかった時はチェックしません。
- 指定した項目(ポストデータ)に特定のキーワードが無い場合NG(認証機能)
- NG時ログ記録機能
参考にしたサイト †
手順 †
- 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" );