1
所以我正在考慮構建一個CMS,我希望它的設計使插件可以輕鬆地擴展它的功能(我正在開發一個鉤子系統和語言設置)。編寫一個有限的系統訪問的PHP插件系統
這是一個棘手的部分:我試圖爲許多網站製作一種主機(例如mycms.com/your-site),而不是單獨打包的CMS。
pages
- id
- slug
- title
- content
- site // The site id
sites
- id
- path // e.g. your-site
- password // hash
然後我就喜歡這家店的插件的文件結構:
我有這樣的結構設計MySQL數據庫
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 /中的文件,並且沒有任何文件在上面?基本上,我想禁止插件訪問他們自己目錄之外的文件。
這一定很簡單吧?
謝謝!
你會直接控制服務器上的代碼嗎? – Charles
我還不完全確定。如果您有解決方案,請務必提出建議,我會研究它。 –