PHP MVC 沙箱

标签 php model-view-controller file-permissions sandbox chmod

我正在构建一个系统,不同的用户可以上传他们的自定义 php 模块。该系统基于用 PHP 编写并部署在 Linux 上的自定义 MVC 框架。 当用户登录时,他的模块将由系统核心加载。系统核心在所有模块之间共享。

我的问题是,如何限制 USER 模块干扰核心。例如。取消链接文件等。我可以通过文件权限阻止他们这样做吗?

最佳答案

让用户上传脚本并执行这些脚本是极其危险的。即使您使用 disable_function 保护系统,Suhosin friend 们,您可能会打开很大的安全漏洞。

我建议您允许用户上传由专用模板语言组成的模板,而不是让用户上传 PHP 脚本。此类语言通常根本无法访问诸如取消链接文件之类的功能。然后你可以通过白名单的方式开放模板语言,这是一种更安全的方法。

Zeta Componets Template engine具有很强的可扩展性,并且 PHP 开发人员可以直观地编写模板。也许这适合您?

关于PHP MVC 沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5142403/

相关文章:

c - fopen() 创建权限模式

php - 如何使用 mysql 和 php 将一对多关系转换为平面数组

javascript - 将键值对作为单独数据 Ajax 发布

php - 如何从函数中的 file_get_contents 或文件运行 php 代码

javascript - 我想将 javascript 中的数据和文件发送到 Controller (但如何)(Mvc asp.net)

git 忽略文件模式配置不起作用

php - MYSQL 触发器错误,

php - cookie 过期日期的差异

javascript - 如何将 Onclick 动态设置为生成的行?

centos - vagrant synced_folder 文件权限