PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#norelated
[[../]]
*任意のページごとの閲覧・編集制限 -- [[Ynak]] [#vafde73d]
-[[PukiWiki/1.4/BasicAuth]] より派生
**目次 [#sf802fd5]
#contents
*できること [#nb75034e]
任意のページに対する閲覧・編集・検索でアクセス制御を行う。
アクセス制御対象となるページは、以下のいずれかで決定でき...
-ページ名にある正規表現にマッチした場合
-ページ内容にある正規表現にマッチした場合
(具体例)
-××ページは全員が閲覧できるが、内容を編集できるのは○○だけ。
-△△ページは□□だけが閲覧・編集できる。
-○△ページは○○と□□が閲覧できるが、編集は○○だけ。
**PukiWiki-official の関連ページ [#z477cd79]
-[[official:Q&A/運営#y9a598f1]] 設定の具体例など
-[[official:正規表現]]
*設定ファイルの仕様 [#a08ac0a5]
pukiwiki.ini.phpに以下の項目を設定することで、
既存・新規作成ページに対するアクセス制御を行うことができ...
-ユーザ定義
-認証方式種別
-閲覧認証フラグ
-閲覧認証対象パターン定義
-編集認証フラグ
-編集認証対象パターン定義
-検索認証フラグ
**ユーザ定義 [#q9906b10]
アクセス制御で使用するユーザとパスワードを設定する。
// ユーザ定義
$auth_users = array(
'foo' => 'foo_passwd',
'bar' => 'bar_passwd',
'hoge' => 'hoge_passwd',
);
1.4.6 以降のパスワード保存書式については、[[BugTrack/709]...
**認証方式種別 [#k1476f05]
××認証対象パターン定義で定義したパターンがどこにあったら、
マッチしたことにするのか、を設定する。
※今回からページ内容によるアクセス制御に対応した。
// 認証方式種別
// pagename : ページ名
// contents : ページ内容
$auth_method_type = "contents";
**閲覧認証 [#pe619681]
***閲覧認証フラグ [#z874fa60]
閲覧認証によるアクセス制御を行うかどうか設定する。
不要な場合はオフにすればパターンマッチングを行わないので...
// 閲覧認証フラグ
// 0:不要
// 1:必要
$read_auth = 1;
***閲覧認証対象パターン定義 [#z1848dd8]
閲覧認証をかけるページを決定するための正規表現パターンを...
マッチしたページに閲覧認証をかける。
カンマ区切りで複数ユーザを書いても良い。
// 閲覧認証対象パターン定義
$read_auth_pages = array(
'/ひきこもるほげ/' => 'hoge',
'/(ネタバレ|ねたばれ)/' => 'foo,bar,hoge',
);
**編集認証 [#cff5af8a]
***編集認証フラグ [#l75b2298]
編集認証によるアクセス制御を行うかどうか設定する。
不要な場合はオフにすればパターンマッチングを行わないので...
// 編集認証フラグ
// 0:不要
// 1:必要
$edit_auth = 1;
***編集認証対象パターン定義 [#s48f4bb2]
編集認証をかけるページを決定するための正規表現パターンを...
マッチしたページに編集認証をかける。
カンマ区切りで複数ユーザを書いても良い。
// 編集認証対象パターン定義
$edit_auth_pages = array(
'/Barの公開日記/' => 'bar',
'/ひきこもるほげ/' => 'hoge',
'/(ネタバレ|ねたばれ)/' => 'foo',
);
**検索認証フラグ [#jc7b64ea]
検索時にも閲覧認証と同等のアクセス制御が必要かどうか設定...
どちらの場合も、ページ名は公開情報なので検索対象となる。
// 検索認証フラグ
// 0: 閲覧が許可されていないページ内容も検索対象とする
// 1: 検索時のログインユーザに許可されたページのみ検索対...
$search_auth = 0;
**上記設定例の解説 [#pd05d4f5]
上の例では
-「Barの公開日記」は、誰でも閲覧できて、barだけが編集でき...
-「ひきこもるほげ」ページは、hogeだけが閲覧・編集できる。
-「映画紹介~ネタバレ注意」ページは、foo, bar, hogeの三人...
のような設定となる。
かなり強引にUNIXっぽく表現すると、こうなる。
アクセス権 ユーザID グループ ページ名
-rw----r-- bar なし Barの公開日記
-rw------- hoge なし HogeOnly
-rw-r----- foo hoges 映画紹介~ネタバレ注意
※グループhogesには、barとhogeが所属するとする。
----
*改造 [#d2b16226]
**本体の改造 [#x8da611f]
PukiWiki1.4rc2(20030529版)をベースにする場合は、以下を改...
((長いので別ページで。))
-[[./ja.lng]]
-[[./en.lng]]
-[[./func.php]]
**pukiwiki.ini.php [#l09a39d1]
設定ファイルの仕様で紹介した項目を追加して、適切な設定を...
すでに存在している$edit_auth, $edit_auth_usersの設定は削...
コメントアウトすること。
**プラグインの改造 [#b5bf2187]
アクセス制御する仕組みは用意したが、
実際にページにアクセスするのはすべてプラグインである。
よって、プラグインで以下の関数による事前チェックを行うよ...
**アクセス制御用の関数仕様 [#fdd50fbf]
-check_readable($page, $auth_flag=true, $exit_flag=true)
--閲覧することができるかチェックする。
--今のところread_authと全く同じ。内部でread_authのみを呼...
-check_editable($page, $auth_flag=true, $exit_flag=true)
--編集することができるかチェックする。
--edit_auth+凍結などのチェックをする場合。
-read_auth($page, $auth_flag=true, $exit_flag=true)
--閲覧権限があるかチェックする。
-edit_auth($page, $auth_flag=true, $exit_flag=true)
--編集権限があるかチェックする。
~
|引数 |説明|
|$page |ページ名文字列|
|$auth_flag |true: 現在のログイン状態で認証NGであれば、BA...
| |false:現在のログイン状態で判断するだけ|
|$exit_flag |true: 認証NGの場合、check_xxxable関数側でNG...
| |false:認証NGの場合でも、戻り値falseで戻って...
~
|戻り値 |true: 認証OK|
| |false:認証NG|
-get_source, file関数を使用している全てのプラグインで、
以下の関数による事前チェックを行うように改造しなければ、
そこが''セキュリティホール''になるので注意!!
-使わないプラグインはpukiwiki/plugin/disableディレクトリ...
そこに入れておくなどして、無効化すると良い。
-check_xxxxable系とxxx_auth系の使い分けは、特に問題がなけ...
観点で読めるか書けるかを判断しているcheck_xxxx系の方を利...
-第2、第3引数のデフォルト値は既存プラグインとの互換性のた...
今後プラグインを実装する場合は明示的に指定した方がよいと...
**要改造プラグイン一覧 [#nb9236e1]
この改造に伴って一緒に改造する必要があるプラグインの一覧...
Ynakの環境で単にgrep -lE '(get_source|file)' pukiwiki/plu...
このうち少なくともedit, read, edit, backup, diffは絶対に...
※改造したものからリンク先に改造方法を書く、ということでよ...
-plugin/add.inc.php → r1.2 以降対応済み
-[[plugin/amazon.inc.php>./amazon.inc.php]] → 一応対応は...
-[[plugin/article.inc.php>./article.inc.php]] → 編集は×で...
-[[plugin/attach.inc.php>./attach.inc.php]] → r1.33 以降...
-[[plugin/backup.inc.php>./backup.inc.php]] → r1.8 以降対...
-[[plugin/bugtrack.inc.php>./bugtrack.inc.php]] → 編集は×...
-[[plugin/calendar2.inc.php>./calendar2.inc.php]]
-[[plugin/calendar_edit.inc.php>./calendar_edit.inc.php]]...
-[[plugin/calendar_read.inc.php>./calendar_read.inc.php]]...
-[[plugin/calendar_viewer.inc.php>./calendar_viewer.inc.p...
-[[plugin/comment.inc.php>./comment.inc.php]] → 編集は×で...
-[[plugin/counter.inc.php>./counter.inc.php]] → カウント...
-[[plugin/deleted.inc.php>./deleted.inc.php]]
-[[plugin/diff.inc.php>./diff.inc.php]] → r1.3 以降対応済...
-[[plugin/edit.inc.php>./edit.inc.php]] → r1.7 以降対応済...
-[[plugin/filelist.inc.php>./filelist.inc.php]]
-[[plugin/freeze.inc.php>./freeze.inc.php]]
-[[plugin/include.inc.php>./include.inc.php]] → r1.7 以降...
-[[plugin/includesubmenu.inc.php>./includesubmenu.inc.php]]
-[[plugin/insert.inc.php>./insert.inc.php]] → 編集は×でも...
-[[plugin/interwiki.inc.php>./interwiki.inc.php]]
-[[plugin/list.inc.php>./list.inc.php]]
-[[plugin/ls.inc.php>./ls.inc.php]]
-[[plugin/ls2.inc.php>./ls2.inc.php]]
-[[plugin/map.inc.php>./map.inc.php]]
-[[plugin/memo.inc.php>./memo.inc.php]] → 編集は×でも更新...
-[[plugin/online.inc.php>./online.inc.php]] → カウント数...
-[[plugin/paint.inc.php>./paint.inc.php]] → 編集は×でも投...
-[[plugin/pcomment.inc.php>./pcomment.inc.php]] → r1.18 ...
-[[plugin/popular.inc.php>./popular.inc.php]]
-[[plugin/read.inc.php>./read.inc.php]] → r1.3 以降対応済...
-[[plugin/recent.inc.php>./recent.inc.php]]
-[[plugin/rename.inc.php>./rename.inc.php]]
-[[plugin/ref.inc.php>./ref.inc.php]]
-[[plugin/rss.inc.php>./rss.inc.php]]
-[[plugin/rss10.inc.php>./rss10.inc.php]]
-[[plugin/showrss.inc.php>./showrss.inc.php]]
-[[plugin/source.inc.php>./source.inc.php]] →r1.11 以降対...
-[[plugin/template.inc.php>./template.inc.php]]
-[[plugin/touchgraph.inc.php>./touchgraph.inc.php]]
-[[plugin/tracker.inc.php>./tracker.inc.php]] → 編集は×で...
-[[plugin/unfreeze.inc.php>./unfreeze.inc.php]]
-[[plugin/versionlist.inc.php>./versionlist.inc.php]]
-[[plugin/vote.inc.php>./vote.inc.php]] → 編集は×でも投票...
-[[plugin/yetlist.inc.php>./yetlist.inc.php]]
*推奨運用方式 [#tf70d0ad]
Ynakのところで運用している方式と、その説明ページの内容を...
→[[./推奨運用方式]]
*注意事項 [#s838ea07]
-閲覧認証をかけたページは、編集認証も必須。
--でないと、「編集」リンクから内容が読めてしまったり、挙...
--編集可能ユーザは、閲覧可能ユーザのサブセットとなるよう...
-edit_auth_pagesなどのvalue部分と、BASIC認証のユーザ名の...
--例えば、'hogefoobar'というユーザIDがあって、このユーザ...
$edit_auth_pages = array(
'/Secret/' => 'hogefoobar',
);
--ここでもし、'hoge'、'foo'、'bar'というユーザIDが存在し...
--とりあえず、pukiwiki.ini.phpにユーザID設定をする人が気...
-通常の設定ではwikiディレクトリ配下のファイルは直接URL指...
ApacheのBasic認証などを利用して、直接アクセスを防止してお...
--たとえば、下記のような.htaccessを配置すると良い。
AuthUserFile /usr/local/apache/htdocs/basic/.htpasswd
AuthGroupFile /dev/null
AuthName "PukiWikiData"
AuthType Basic
require valid-user
--詳しくはApacheなどのドキュメントを参照のこと。
**[[関連>./関連ページ]] [#pa5bdccf]
#include(./関連ページ,notitle)
#br
----
*コメント [#r1236f33]
-できるだけ1.4の設計思想(?)を優先して、きれいにまとめて...
-pcommentもセキュリティホールになりますね。改造しないと。...
-あと、メイン機能系では添付ファイルのアクセス制限に未対応...
-ページ名による制御対象のページ指定に対応したので、一新し...
-すばらしいですね。是非本家に取り入れて欲しい機能です。 -...
-ありがとうございます。[[BugTrack/370]]で要望を出してみた...
-私の方での利用形態では一通り試して特に問題は見つかりませ...
-ソース差分をチェックしただけで検証をしていないのですが、...
-まだ、使いはじめたばかりでわからないこといっぱいなんです...
-md5というプラグインが1.4で追加されているのでそれを使って...
-ユーザ定義のところにmd5にしたパスワードを書きたいのです...
-以下のようにすればいいのではないかと。 -- [[ぱんだ]] &ne...
--pukiwiki.ini.php
/////////////////////////////////////////////////
// ユーザ定義
$auth_users = array(
-'foo' => 'foo_passwd',
-'bar' => 'bar_passwd',
-'hoge' => 'hoge_passwd',
+// ユーザ名 => パスワード(md5 hash)
+// pukiwiki.php?md5=pass のようにURLに入力し
+// MD5ハッシュにしてから記入してください。
+'foo' => 'f122914144e12fa7d7b7b14cc223f671',
+'bar' => 'f53ae779077e987718cc285b14dfbe86',
+'hoge' => '0c165e4475e0726a1f4a5dc55647d992',
);
--auth.php
// ユーザリストに含まれるいずれかのユーザと認証されれ...
if (!isset($_SERVER['PHP_AUTH_USER'])
or !in_array($_SERVER['PHP_AUTH_USER'],$user_list)
or !array_key_exists($_SERVER['PHP_AUTH_USER'],$auth_...
- or $auth_users[$_SERVER['PHP_AUTH_USER']] != $_SERVER...
+ or $auth_users[$_SERVER['PHP_AUTH_USER']] != md5($_SE...
{
-この方が安全(pukiwiki.ini.phpを盗まれたとしても、ある程...
-ありがとうございます。どうもパスワード直打ちが気持ちわる...
-- 'hoge' => md5("hoge_passwd"), ってのもいけそうなので ...
--pukiwiki.ini.php
/////////////////////////////////////////////////
// ユーザ定義
$auth_users = array(
-'foo' => 'foo_passwd',
-'bar' => 'bar_passwd',
-'hoge' => 'hoge_passwd',
+// ユーザ名 => パスワード(md5 hash)
+// pukiwiki.php?md5=pass のようにURLに入力し
+// MD5ハッシュにしてから記入してください。
+// 面倒ならば以下のようにどうぞ
+// ユーザ名 => md5(パスワード)
+'foo' => 'f122914144e12fa7d7b7b14cc223f671',
+'bar' => 'f53ae779077e987718cc285b14dfbe86',
+'hoge' => md5("hoge_passwd"),
);
-はじめまして &br;
閲覧認証を設定したいのですが、ユーザー定義で定義したユー...
「Windows 2000 Professional」に「pukiwiki_1.4.2」ではでき...
現在は「Windows Xp HomeEdition」に「pukiwiki_1.4.2」を使...
-このページを参考に、既に使っているDBのセッション認証を付...
--閲覧制限されているページをlist.inc.phpやrecent.inc.php...
- 上記の方法でうまくいきましたが、雛形から見ることが出来...
--[[関連リンク>./#o3e8c198]] を少し足してみました。雛形に...
--- 元の著者が誰かがわからなくなるような修正がありました...
- lib/pukiwiki.php の次の部分もチェックしたほうがいいので...
if (isset($retvars['body']) && $retvars['body'] != '') {
$body = & $retvars['body'];
} else {
if ($base == '' || ! is_page($base)) {
$base = & $defaultpage;
$title = htmlspecialchars(strip_bracket($base));
$page = make_search($base);
}
$vars['cmd'] = 'read';
$vars['page'] = & $base;
- $body = convert_html(get_source($base));
+ if (check_readable($base, true, false)) {
+ $body = convert_html(get_source($base));
+ } else {
+ global $title_cannot;
+ $body = str_replace('$1', htmlspecialchars(strip_bra...
+ }
}
例えば、コメントプラグインでメッセージが空だった場合に、a...
-- 関連: [[BugTrack2/198]] -- &new{2009-06-16 (火) 23:10...
- 現在
'/^☆.*$/' => 'tokubetu', (イ)
のようにして、☆で始まるページは「tokubetu」ユーザにだけ閲...
'/[^(FrontPage)]/'=> 'ippan,tokubetu', (ロ)
という行も追加しました。つまり、フロントページは誰でも見...
--自己解決しました
'/^☆.*$/' => 'tokubetu',
'/^(?!^(FrontPage|^☆.*$)$).*$/' => 'ippan,tokubetu',
が正解でした。 -- &new{2008-07-08 (火) 15:45:20};
終了行:
#norelated
[[../]]
*任意のページごとの閲覧・編集制限 -- [[Ynak]] [#vafde73d]
-[[PukiWiki/1.4/BasicAuth]] より派生
**目次 [#sf802fd5]
#contents
*できること [#nb75034e]
任意のページに対する閲覧・編集・検索でアクセス制御を行う。
アクセス制御対象となるページは、以下のいずれかで決定でき...
-ページ名にある正規表現にマッチした場合
-ページ内容にある正規表現にマッチした場合
(具体例)
-××ページは全員が閲覧できるが、内容を編集できるのは○○だけ。
-△△ページは□□だけが閲覧・編集できる。
-○△ページは○○と□□が閲覧できるが、編集は○○だけ。
**PukiWiki-official の関連ページ [#z477cd79]
-[[official:Q&A/運営#y9a598f1]] 設定の具体例など
-[[official:正規表現]]
*設定ファイルの仕様 [#a08ac0a5]
pukiwiki.ini.phpに以下の項目を設定することで、
既存・新規作成ページに対するアクセス制御を行うことができ...
-ユーザ定義
-認証方式種別
-閲覧認証フラグ
-閲覧認証対象パターン定義
-編集認証フラグ
-編集認証対象パターン定義
-検索認証フラグ
**ユーザ定義 [#q9906b10]
アクセス制御で使用するユーザとパスワードを設定する。
// ユーザ定義
$auth_users = array(
'foo' => 'foo_passwd',
'bar' => 'bar_passwd',
'hoge' => 'hoge_passwd',
);
1.4.6 以降のパスワード保存書式については、[[BugTrack/709]...
**認証方式種別 [#k1476f05]
××認証対象パターン定義で定義したパターンがどこにあったら、
マッチしたことにするのか、を設定する。
※今回からページ内容によるアクセス制御に対応した。
// 認証方式種別
// pagename : ページ名
// contents : ページ内容
$auth_method_type = "contents";
**閲覧認証 [#pe619681]
***閲覧認証フラグ [#z874fa60]
閲覧認証によるアクセス制御を行うかどうか設定する。
不要な場合はオフにすればパターンマッチングを行わないので...
// 閲覧認証フラグ
// 0:不要
// 1:必要
$read_auth = 1;
***閲覧認証対象パターン定義 [#z1848dd8]
閲覧認証をかけるページを決定するための正規表現パターンを...
マッチしたページに閲覧認証をかける。
カンマ区切りで複数ユーザを書いても良い。
// 閲覧認証対象パターン定義
$read_auth_pages = array(
'/ひきこもるほげ/' => 'hoge',
'/(ネタバレ|ねたばれ)/' => 'foo,bar,hoge',
);
**編集認証 [#cff5af8a]
***編集認証フラグ [#l75b2298]
編集認証によるアクセス制御を行うかどうか設定する。
不要な場合はオフにすればパターンマッチングを行わないので...
// 編集認証フラグ
// 0:不要
// 1:必要
$edit_auth = 1;
***編集認証対象パターン定義 [#s48f4bb2]
編集認証をかけるページを決定するための正規表現パターンを...
マッチしたページに編集認証をかける。
カンマ区切りで複数ユーザを書いても良い。
// 編集認証対象パターン定義
$edit_auth_pages = array(
'/Barの公開日記/' => 'bar',
'/ひきこもるほげ/' => 'hoge',
'/(ネタバレ|ねたばれ)/' => 'foo',
);
**検索認証フラグ [#jc7b64ea]
検索時にも閲覧認証と同等のアクセス制御が必要かどうか設定...
どちらの場合も、ページ名は公開情報なので検索対象となる。
// 検索認証フラグ
// 0: 閲覧が許可されていないページ内容も検索対象とする
// 1: 検索時のログインユーザに許可されたページのみ検索対...
$search_auth = 0;
**上記設定例の解説 [#pd05d4f5]
上の例では
-「Barの公開日記」は、誰でも閲覧できて、barだけが編集でき...
-「ひきこもるほげ」ページは、hogeだけが閲覧・編集できる。
-「映画紹介~ネタバレ注意」ページは、foo, bar, hogeの三人...
のような設定となる。
かなり強引にUNIXっぽく表現すると、こうなる。
アクセス権 ユーザID グループ ページ名
-rw----r-- bar なし Barの公開日記
-rw------- hoge なし HogeOnly
-rw-r----- foo hoges 映画紹介~ネタバレ注意
※グループhogesには、barとhogeが所属するとする。
----
*改造 [#d2b16226]
**本体の改造 [#x8da611f]
PukiWiki1.4rc2(20030529版)をベースにする場合は、以下を改...
((長いので別ページで。))
-[[./ja.lng]]
-[[./en.lng]]
-[[./func.php]]
**pukiwiki.ini.php [#l09a39d1]
設定ファイルの仕様で紹介した項目を追加して、適切な設定を...
すでに存在している$edit_auth, $edit_auth_usersの設定は削...
コメントアウトすること。
**プラグインの改造 [#b5bf2187]
アクセス制御する仕組みは用意したが、
実際にページにアクセスするのはすべてプラグインである。
よって、プラグインで以下の関数による事前チェックを行うよ...
**アクセス制御用の関数仕様 [#fdd50fbf]
-check_readable($page, $auth_flag=true, $exit_flag=true)
--閲覧することができるかチェックする。
--今のところread_authと全く同じ。内部でread_authのみを呼...
-check_editable($page, $auth_flag=true, $exit_flag=true)
--編集することができるかチェックする。
--edit_auth+凍結などのチェックをする場合。
-read_auth($page, $auth_flag=true, $exit_flag=true)
--閲覧権限があるかチェックする。
-edit_auth($page, $auth_flag=true, $exit_flag=true)
--編集権限があるかチェックする。
~
|引数 |説明|
|$page |ページ名文字列|
|$auth_flag |true: 現在のログイン状態で認証NGであれば、BA...
| |false:現在のログイン状態で判断するだけ|
|$exit_flag |true: 認証NGの場合、check_xxxable関数側でNG...
| |false:認証NGの場合でも、戻り値falseで戻って...
~
|戻り値 |true: 認証OK|
| |false:認証NG|
-get_source, file関数を使用している全てのプラグインで、
以下の関数による事前チェックを行うように改造しなければ、
そこが''セキュリティホール''になるので注意!!
-使わないプラグインはpukiwiki/plugin/disableディレクトリ...
そこに入れておくなどして、無効化すると良い。
-check_xxxxable系とxxx_auth系の使い分けは、特に問題がなけ...
観点で読めるか書けるかを判断しているcheck_xxxx系の方を利...
-第2、第3引数のデフォルト値は既存プラグインとの互換性のた...
今後プラグインを実装する場合は明示的に指定した方がよいと...
**要改造プラグイン一覧 [#nb9236e1]
この改造に伴って一緒に改造する必要があるプラグインの一覧...
Ynakの環境で単にgrep -lE '(get_source|file)' pukiwiki/plu...
このうち少なくともedit, read, edit, backup, diffは絶対に...
※改造したものからリンク先に改造方法を書く、ということでよ...
-plugin/add.inc.php → r1.2 以降対応済み
-[[plugin/amazon.inc.php>./amazon.inc.php]] → 一応対応は...
-[[plugin/article.inc.php>./article.inc.php]] → 編集は×で...
-[[plugin/attach.inc.php>./attach.inc.php]] → r1.33 以降...
-[[plugin/backup.inc.php>./backup.inc.php]] → r1.8 以降対...
-[[plugin/bugtrack.inc.php>./bugtrack.inc.php]] → 編集は×...
-[[plugin/calendar2.inc.php>./calendar2.inc.php]]
-[[plugin/calendar_edit.inc.php>./calendar_edit.inc.php]]...
-[[plugin/calendar_read.inc.php>./calendar_read.inc.php]]...
-[[plugin/calendar_viewer.inc.php>./calendar_viewer.inc.p...
-[[plugin/comment.inc.php>./comment.inc.php]] → 編集は×で...
-[[plugin/counter.inc.php>./counter.inc.php]] → カウント...
-[[plugin/deleted.inc.php>./deleted.inc.php]]
-[[plugin/diff.inc.php>./diff.inc.php]] → r1.3 以降対応済...
-[[plugin/edit.inc.php>./edit.inc.php]] → r1.7 以降対応済...
-[[plugin/filelist.inc.php>./filelist.inc.php]]
-[[plugin/freeze.inc.php>./freeze.inc.php]]
-[[plugin/include.inc.php>./include.inc.php]] → r1.7 以降...
-[[plugin/includesubmenu.inc.php>./includesubmenu.inc.php]]
-[[plugin/insert.inc.php>./insert.inc.php]] → 編集は×でも...
-[[plugin/interwiki.inc.php>./interwiki.inc.php]]
-[[plugin/list.inc.php>./list.inc.php]]
-[[plugin/ls.inc.php>./ls.inc.php]]
-[[plugin/ls2.inc.php>./ls2.inc.php]]
-[[plugin/map.inc.php>./map.inc.php]]
-[[plugin/memo.inc.php>./memo.inc.php]] → 編集は×でも更新...
-[[plugin/online.inc.php>./online.inc.php]] → カウント数...
-[[plugin/paint.inc.php>./paint.inc.php]] → 編集は×でも投...
-[[plugin/pcomment.inc.php>./pcomment.inc.php]] → r1.18 ...
-[[plugin/popular.inc.php>./popular.inc.php]]
-[[plugin/read.inc.php>./read.inc.php]] → r1.3 以降対応済...
-[[plugin/recent.inc.php>./recent.inc.php]]
-[[plugin/rename.inc.php>./rename.inc.php]]
-[[plugin/ref.inc.php>./ref.inc.php]]
-[[plugin/rss.inc.php>./rss.inc.php]]
-[[plugin/rss10.inc.php>./rss10.inc.php]]
-[[plugin/showrss.inc.php>./showrss.inc.php]]
-[[plugin/source.inc.php>./source.inc.php]] →r1.11 以降対...
-[[plugin/template.inc.php>./template.inc.php]]
-[[plugin/touchgraph.inc.php>./touchgraph.inc.php]]
-[[plugin/tracker.inc.php>./tracker.inc.php]] → 編集は×で...
-[[plugin/unfreeze.inc.php>./unfreeze.inc.php]]
-[[plugin/versionlist.inc.php>./versionlist.inc.php]]
-[[plugin/vote.inc.php>./vote.inc.php]] → 編集は×でも投票...
-[[plugin/yetlist.inc.php>./yetlist.inc.php]]
*推奨運用方式 [#tf70d0ad]
Ynakのところで運用している方式と、その説明ページの内容を...
→[[./推奨運用方式]]
*注意事項 [#s838ea07]
-閲覧認証をかけたページは、編集認証も必須。
--でないと、「編集」リンクから内容が読めてしまったり、挙...
--編集可能ユーザは、閲覧可能ユーザのサブセットとなるよう...
-edit_auth_pagesなどのvalue部分と、BASIC認証のユーザ名の...
--例えば、'hogefoobar'というユーザIDがあって、このユーザ...
$edit_auth_pages = array(
'/Secret/' => 'hogefoobar',
);
--ここでもし、'hoge'、'foo'、'bar'というユーザIDが存在し...
--とりあえず、pukiwiki.ini.phpにユーザID設定をする人が気...
-通常の設定ではwikiディレクトリ配下のファイルは直接URL指...
ApacheのBasic認証などを利用して、直接アクセスを防止してお...
--たとえば、下記のような.htaccessを配置すると良い。
AuthUserFile /usr/local/apache/htdocs/basic/.htpasswd
AuthGroupFile /dev/null
AuthName "PukiWikiData"
AuthType Basic
require valid-user
--詳しくはApacheなどのドキュメントを参照のこと。
**[[関連>./関連ページ]] [#pa5bdccf]
#include(./関連ページ,notitle)
#br
----
*コメント [#r1236f33]
-できるだけ1.4の設計思想(?)を優先して、きれいにまとめて...
-pcommentもセキュリティホールになりますね。改造しないと。...
-あと、メイン機能系では添付ファイルのアクセス制限に未対応...
-ページ名による制御対象のページ指定に対応したので、一新し...
-すばらしいですね。是非本家に取り入れて欲しい機能です。 -...
-ありがとうございます。[[BugTrack/370]]で要望を出してみた...
-私の方での利用形態では一通り試して特に問題は見つかりませ...
-ソース差分をチェックしただけで検証をしていないのですが、...
-まだ、使いはじめたばかりでわからないこといっぱいなんです...
-md5というプラグインが1.4で追加されているのでそれを使って...
-ユーザ定義のところにmd5にしたパスワードを書きたいのです...
-以下のようにすればいいのではないかと。 -- [[ぱんだ]] &ne...
--pukiwiki.ini.php
/////////////////////////////////////////////////
// ユーザ定義
$auth_users = array(
-'foo' => 'foo_passwd',
-'bar' => 'bar_passwd',
-'hoge' => 'hoge_passwd',
+// ユーザ名 => パスワード(md5 hash)
+// pukiwiki.php?md5=pass のようにURLに入力し
+// MD5ハッシュにしてから記入してください。
+'foo' => 'f122914144e12fa7d7b7b14cc223f671',
+'bar' => 'f53ae779077e987718cc285b14dfbe86',
+'hoge' => '0c165e4475e0726a1f4a5dc55647d992',
);
--auth.php
// ユーザリストに含まれるいずれかのユーザと認証されれ...
if (!isset($_SERVER['PHP_AUTH_USER'])
or !in_array($_SERVER['PHP_AUTH_USER'],$user_list)
or !array_key_exists($_SERVER['PHP_AUTH_USER'],$auth_...
- or $auth_users[$_SERVER['PHP_AUTH_USER']] != $_SERVER...
+ or $auth_users[$_SERVER['PHP_AUTH_USER']] != md5($_SE...
{
-この方が安全(pukiwiki.ini.phpを盗まれたとしても、ある程...
-ありがとうございます。どうもパスワード直打ちが気持ちわる...
-- 'hoge' => md5("hoge_passwd"), ってのもいけそうなので ...
--pukiwiki.ini.php
/////////////////////////////////////////////////
// ユーザ定義
$auth_users = array(
-'foo' => 'foo_passwd',
-'bar' => 'bar_passwd',
-'hoge' => 'hoge_passwd',
+// ユーザ名 => パスワード(md5 hash)
+// pukiwiki.php?md5=pass のようにURLに入力し
+// MD5ハッシュにしてから記入してください。
+// 面倒ならば以下のようにどうぞ
+// ユーザ名 => md5(パスワード)
+'foo' => 'f122914144e12fa7d7b7b14cc223f671',
+'bar' => 'f53ae779077e987718cc285b14dfbe86',
+'hoge' => md5("hoge_passwd"),
);
-はじめまして &br;
閲覧認証を設定したいのですが、ユーザー定義で定義したユー...
「Windows 2000 Professional」に「pukiwiki_1.4.2」ではでき...
現在は「Windows Xp HomeEdition」に「pukiwiki_1.4.2」を使...
-このページを参考に、既に使っているDBのセッション認証を付...
--閲覧制限されているページをlist.inc.phpやrecent.inc.php...
- 上記の方法でうまくいきましたが、雛形から見ることが出来...
--[[関連リンク>./#o3e8c198]] を少し足してみました。雛形に...
--- 元の著者が誰かがわからなくなるような修正がありました...
- lib/pukiwiki.php の次の部分もチェックしたほうがいいので...
if (isset($retvars['body']) && $retvars['body'] != '') {
$body = & $retvars['body'];
} else {
if ($base == '' || ! is_page($base)) {
$base = & $defaultpage;
$title = htmlspecialchars(strip_bracket($base));
$page = make_search($base);
}
$vars['cmd'] = 'read';
$vars['page'] = & $base;
- $body = convert_html(get_source($base));
+ if (check_readable($base, true, false)) {
+ $body = convert_html(get_source($base));
+ } else {
+ global $title_cannot;
+ $body = str_replace('$1', htmlspecialchars(strip_bra...
+ }
}
例えば、コメントプラグインでメッセージが空だった場合に、a...
-- 関連: [[BugTrack2/198]] -- &new{2009-06-16 (火) 23:10...
- 現在
'/^☆.*$/' => 'tokubetu', (イ)
のようにして、☆で始まるページは「tokubetu」ユーザにだけ閲...
'/[^(FrontPage)]/'=> 'ippan,tokubetu', (ロ)
という行も追加しました。つまり、フロントページは誰でも見...
--自己解決しました
'/^☆.*$/' => 'tokubetu',
'/^(?!^(FrontPage|^☆.*$)$).*$/' => 'ippan,tokubetu',
が正解でした。 -- &new{2008-07-08 (火) 15:45:20};
ページ名: