#topicpath
#br
**概要 [#p6379385]
プロキシ経由の荒らしなどの対処のため、アクセス制限をかけたい場合があるが、Pukiwikiには2006年11月現在、標準でそのような機能は提供されていない。
スクリプトを改造して対処することにする。
**できること [#eb4cbb77]
-プロクシ経由を制限
-リファラーで制限
-ホストの範囲で制限
-投稿が英字だけだったら制限
-共有NGワードで制限
--※投稿項目別に設定可能、投稿項目は自動判別します。判別できなかった時はチェックしません。
-指定した項目(ポストデータ)に特定のキーワードが無い場合NG(認証機能)
-NG時ログ記録機能
**参考にしたサイト [#rf35f5f1]
[[PHP用スパム検出ライブラリ>http://bbslabo.breeze.jp/c001_spam_lib_php.html]]
**手順 [#z8255048]
+[[PHP用スパム検出ライブラリ>http://bbslabo.breeze.jp/c001_spam_lib_php.html]]から「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"
);