*編集認証の実装を考える [#xe6cfd6a]
2007-08-02 (木) 03:05:45 by ぃぉぃぉ&br;
2007-08-18 (土) 21:53:26 unfreeze, recentに関する追記 by [[ぃぉぃぉ]]

**現状 [#od26420e]
多くのプラグインが認証未対応のままである。&br;
書き込み認証未対応のために、プラグインによっては任意のページを作成できてしまう。

**対策案 [#c27cc7aa]
lib/file.phpのfunction file_write()で書き込み認証チェックすることによって、ほぼ全てが防げるのでは。

 function file_write($dir, $page, $str, $notimestamp = FALSE)
 {
 	global $_msg_invalidiwn, $notify, $notify_diff_only, $notify_subject;
 	global $whatsdeleted, $maxshow_deleted;
 +	global $editable_flag;
 
 	if (PKWK_READONLY) return; // Do nothing
 +	if (!$editable_flag && !check_editable($page)) return; // Do nothing
 	if ($dir != DATA_DIR && $dir != DIFF_DIR) die('file_write(): Invalid directory');
とする。(注 $editable_flagのチェックはcheck_editableより先に行わなければならない。明示的にif文2つに分けた方がよいかな。)
~明示的に編集認証を無視する場合には、
 	global $editable_flag;
 	$editable_flag = TRUE;
を記載する。プラグイン「rename.inc.php」や「unfreeze.inc.php」の様に直接file_write()やpage_write()を呼び出しているプラグインではその前に記載必要。
&br;#commentのように、(一部の人は)書き込み認証に関係なく書き込み可としているプラグインにはreturnの前に記載する。


*[[関連>PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/関連ページ]] [#w6331110]
#include(PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/関連ページ,notitle)


* コメント [#x4956654]
- 提案ありがとうございます。集中管理できるならそれに越したことはないのですが、これは試されたものなのでしょうか、試されていないものなのでしょうか :)? -- [[henoheno]] &new{2007-08-19 (日) 00:01:59};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.037 sec.

OSDN