我正在建立一个不同用户可以上传自定义php模块的系统。该系统基于用PHP编写并部署在Linux上的自定义MVC框架。 当用户登录时,他的模块将由系统核心加载。系统核心在所有模块之间共享。
我的问题是,如何限制USER模块搞乱核心。例如。取消链接文件,类似。我可以阻止他们使用文件权限吗?
答案 0 :(得分:4)
提升用户上传脚本并执行这些操作非常危险。即使您使用disable_function
,Suhosin和朋友保护系统,也可能会打开大量安全漏洞。
我建议您不要让用户上传PHP脚本,而是允许他们上传模板,模板由专用的模板语言组成。这些语言通常无法访问诸如取消链接文件之类的功能。然后,您可以通过白名单打开模板语言,这是一种更安全的方法。
Zeta Componets Template engine非常易于扩展,并且可以直观地为PHP开发人员编写模板。也许这是你的选择?
答案 1 :(得分:0)
希望您系统的每个用户在您的服务器上都有不同的用户帐户。如果他们不这样做,那么要防止他们删除其他数据将非常困难。
我假设你正在开发一些unix服务器。
mvc-admin
。g-mvc-access
。chown -R mvc-admin:g-mvc-access /path/to/mvc-system-root
。现在这些文件全部由admin用户和访问组chmod -R g+r-w /path/to/mvc-system-root
。现在,该组可以读取但不能写入MVC系统根目录下的所有文件。g-mvc-access
。答案 2 :(得分:-1)