Pukiwikiを遠隔ロックする機能

メッセージ

掲示板系のCGIが「荒れる」というのはよくあることですが、全体がBBS状態のPukiwikiが荒れるとなるとえらいことです。

もし「あっ!荒れてる!」と思ったとき、会社、学校、電車の中、座敷牢からでも気軽にPukiwikiを遠隔ロックする方法を取り付けてはどうでしょうか。

試作品はPukiWiki改造/pukiwikiを遠隔ロックするです。

試作品の機能は2つです。

経緯はofficial:欲しいプラグイン/285です。

試作品は、本体への変更が明らかにおかしな場所に行われてます。(pkwk/lib/pukiwiki.php内でdefine定義やらPKWK_READONLY定義やらやってます。)

ただ、index.php内にif文をおきたくないし、かといってpukiwiki.ini.phpが読み込まれてからPKWK_READONLYを定義しても遅いようなので、とりあえずこの位置におきました。


これまた、使い方がさっぱり書いてなかったので追記します。

簡単に言って今回やっていることは、フラグファイル(2つ)の定義と、フラグが立っているか調べて特定の動作をする。あとはフラグファイル自体の操作の3アクションです。

定義
フラグファイルとして使用する2つのファイルを定義します。
フラグが立っていたら特定の動作をする
READONLYする
(pukiwiki_root)/easylock_readonly.lockファイルをフラグファイルとして、このファイルが存在すればdefine(PKWK_READONLY,1);します。
カバーをかける
同じくeasylock_cober.lockで、read.inc.phpを呼び出したときこのファイルが存在すれば、get_sourceするよりも早く常に固定文字列を返します。
リモートからロックファイルをいじる仕組み
index.php?cmd=easylock形式でプラグインを呼び出すと管理人パスワードとフラグファイルの操作を尋ねられます。ログイン後は、フラグファイルをtouchかunlinkして報告するだけです。


*1 Googleに聞いてみた例を挙げさせていただいただけで、こちらのサイトは今回始めて見ました
*2 pkwk_login()は、PKWK_READONLYによって永遠に失敗する様になるため。
*3 そういう妥協案的な考え方は危険であると言われればそのとおりと思いますが、荒れっぱなしのwikiよりは安全と思います。対応してくれる善意の協力者に半永久無条件期待するのもちょっと心もとない。
*4 一旦defineしたらもう変更できない

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-03-19 (月) 15:50:55
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.242 sec.

SourceForge