我正在构建一个系统,不同的用户可以上传他们的自定义 php 模块。该系统基于用 PHP 编写并部署在 Linux 上的自定义 MVC 框架。 当用户登录时,他的模块将由系统核心加载。系统核心在所有模块之间共享。
我的问题是,如何限制 USER 模块干扰核心。例如。取消链接文件等。我可以通过文件权限阻止他们这样做吗?
最佳答案
让用户上传脚本并执行这些脚本是极其危险的。即使您使用 disable_function
保护系统,Suhosin friend 们,您可能会打开很大的安全漏洞。
我建议您允许用户上传由专用模板语言组成的模板,而不是让用户上传 PHP 脚本。此类语言通常根本无法访问诸如取消链接文件之类的功能。然后你可以通过白名单的方式开放模板语言,这是一种更安全的方法。
Zeta Componets Template engine具有很强的可扩展性,并且 PHP 开发人员可以直观地编写模板。也许这适合您?
关于PHP MVC 沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5142403/