カテゴリ | |
サマリ | cmd=editなどを拒否できるトリック |
バージョン | 1.4.2 |
投稿者 | ねこご |
状態 | 完了 |
投稿日 | |
質問箱/2016で、henohenoさんが、『それら(例えばcmd=editやcommentなど)を選択的に拒否できるようなトリックをpukiwiki.php (1.4.4ではlib/pukiwiki.php) を組み込んでおけば、編集/追記できないけど読める状態になる』と書かれていました。
これを見て思ったことがあるのですが、元のpukiwiki.phpを別名保存して、pukiwiki.phpは編集・追記をできないようにトリックを組み込みます。この場合、元のpukiwiki.phpでは編集・追記はできないが、別名保存されたものからなら編集・追記ができるようになりますでしょうか。
私の利用しているレンタルサーバーでは、PHPはCGIモジュール版として動いており、管理者からBasic認証を使えるようにする為の変更はできないと回答をいただきました。その為、凍結でしのいでおります。
どういうトリックを組み込めばいいのかもまだ分かりませんが、書き込むことができるファイル名がばれない限り書き込まれないなら、凍結の手間からみると魅力的に見えます。
こういった使い道が可能なら、試してみたいのですが、こういうことはできますでしょうか? 見当違いでしたらすみません。
- なるほど。いっそのこと、LIB_DIR(lib/)を2つ用意して、index.php と ひみつのphp ファイルでそれぞれ異なるLIB_DIRをロードするようにしてから改造されると如何でしょう :) -- henoheno
- あ、1.4.4じゃなくて1.4.2なのか・・・orz -- henoheno
- 基本的な考え方はそうだと思いますよ。そうした方向がread-only構成の入り口だと思っています -- henoheno
- cmdの値を取得する部分にフィルタをかけて、値がeditなら無視する様にするだけで、「編集画面の表示」と「編集画面からの書き込み」は禁止されます。当然ですが・・・ (^^; 他のcmdや、read-write構成(デフォルトのPukiWiki)との兼ね合いを考えるならば、cmd=editの時にはエラーメッセージを出す様にするとより良いでしょう -- henoheno
- プラグインも、少なくともcommentについては同様ですね。pluginの値がcomment である瞬間というのはコメントプラグインの書き込み時にしかないはずですから、以下略です。 -- henoheno
- さらにお勧めするのは、プラグインについてもディレクトリを2つ用意して、read-only時に必要がないものは削除しておくことです。そうするとそのプラグインを使ったいたずらは物理的に不可能になりますね :) また、read-only時の設定もキツ~くして下さい。(1.4.2でそこまで構成するのは大変かもしれませんが (^^;) -- henoheno
- ありがとうございます。あまり難しいことはできませんが試してみたいと思います。 -- ねこご
- pukiwiki.phpのメイン処理の中に、if ($vars['cmd'] = 'edit'){}else{もともとの処理} というのをあちこち入れてみたのですが、画面が真っ白になって、うまくいきません。値の比較方法が間違っているのでしょうか。どなたかアドバイスをお願いします。 -- ねこご
- =が1つ足りませんね。比較演算子をご覧ください。 -- さばぞう
- 無事editをはじくことができるようになりました。henohenさん、さばぞうさん、本当にありがとうございます。 -- ねこご
- 質問箱/2158 編集への認証について --
- BugTrackを作りました。 => dev:BugTrack/744 -- henoheno
- PKWK_READONLY: Read-Only 構成を容易に