安全模式已弃用为 5.3.0。由于权限错误等,我从来没有真正需要它,而是在过去多次发现它有问题。
但是,我现在有一个要求,我认为安全模式会做得很好。
我已经构建了一个可通过模块扩展的 Web 应用程序。我计划自己托管系统,并允许付费客户通过实现和编写连接到系统各个部分的模块来扩展他们的软件。
我担心的是,这样做,我无法确保他们上传的代码不会扫描我花费数年时间设计和测试的基础/框架。保持代码的专有性对我很感兴趣。
我编写了一个模块分析工具来确保第三方模块中没有调用非法方法 - 不容易!!!
我在 php.ini 级别禁用了有害功能,但这包括 fopen() 和它的同类 - 这意味着框架将无法调用它自己的 include() 操作等。
最后,可悲的是,安全模式已过时,限制用户模块能够读取不共享相同 ID、组等的文件。
这种事情的推荐方法是什么?在我的框架上下文中执行之前,缺少手动检查或自动分析每个模块吗?