*編集認証の実装を考える [#xe6cfd6a]
2007-08-02 (木) 03:05:45 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つに分けた方がよいかな。)
~#commentのように、(一部の人は)書き込み認証に関係なく書き込み可としているプラグインにはreturnの前にでも
 +	global $editable_flag;
 +	$editable_flag = TRUE;
とすることで、書き込み可と出来る。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新の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.051 sec.

OSDN