PukiWiki1.4.6 CGIの編集認証(続編)

id:otn:20060525 に、PuwkiWikiの編集認証が、CGIの時に使えないので、その解決法を書いた。
その記事のリンク元をみて、「http://wikki.sakura.ne.jp/pert/?CGI%E8%AA%8D%E8%A8%BC」というページを見つけた。

(4) pukiwiki.ini.php の $script = 'http://hostname/index.php'; の後に
  if(defined('EDIT_OK')) $script = 'http://hostname/edit.php'; を追加

の代りに、

(4') lib/init.php の $arg = input_filter($arg); の次に以下を追加 
     if (!defined('EDIT_OK') && ereg('^cmd=edit&', $arg)) {
	pkwk_headers_sent();
	header('Location: ' . $script . 'edit.php?' . $arg);
	exit;
     }

とすることで、通常は index.php を使っておいて、編集のときだけ、自動的に認証の掛かった edit.php を呼び出してくれる。場合によってはこちらのほうがいいだろう。私はお気に入りにedit.php(仮名)のURLを登録してあるので、ページを見るだけでも認証に答えるのが面倒だったが、これだとindex.phpを登録しておけば認証は編集しない限り不要だ。
参照サイトでは、ユーザー・パスワードを公開した上で、spam除けとして使っている。通常のWikiの使い方である不特定多数or特定多数での編集の場合はこちらのほうがいいだろう。


秘密のものが、a.編集用URL名、b.ユーザ、c.パスワードの3つから、bとcの2つに減るので、一人でしか編集しないor特定少数での編集の場合には面倒でなければオリジナルのほうが良いかな。まあセキュリティが弱まるとまでは思わないけど。

私の場合、乗り換えようかと思ったけど、すでに EDIT_OK を使って、id:otn:20060617「PuwkiWikiのページ一覧表示のハック」ということをやっているので、乗り換えられないことに気づく。