それで、私はCMSを構築することを考えています.プラグインがその機能を簡単に拡張できるように設計したいと思います(私はフックシステムと言語セットアップにも取り組んでいます).
ここが難しい部分です。個別にパッケージ化された CMS ではなく、多くのサイト (mycms.com/your-site など) の一種のホストを作成しようとしています。
次のような構造の MySQL データベースを設計しています。
pages
- id
- slug
- title
- content
- site // The site id
sites
- id
- path // e.g. your-site
- password // hash
次に、次のようなプラグインをファイル構造に保存します。
plugins/
42/ // Site id
hello-world/ // plugin name
hello-world.php
functions.php
css/ // ...
もちろん、ここには重大なセキュリティ上の問題があります。プラグイン作成者が hello-world.php を次のようにコーディングするとします。
<?php
include '../../../core/config.inc.php';
echo $config['mysql']['password']; // Now they have my server's database password!
?>
どうすればこのようなことを回避できますか? hello-world.php がディレクトリ hello-world/ 内のファイルにのみアクセスし、その上には何もアクセスできないようにするにはどうすればよいですか? 基本的に、プラグインが自分のディレクトリ外のファイルにアクセスするのを禁止したいと考えています。
これは単純なはずですよね?
ありがとう!