Advanced 2Yii2PHP沙盒功能实现

PHP 沙盒的 Yii2 实现,挺适合需要动态执行代码的场景,比如用户提交逻辑、自定义插件这些地方。这份 advanced-2-带沙盒功能.zip 项目在 Yii2 框架 上集成了一个可控的 PHP 代码沙盒,安全策略也比较全:白名单函数、敏感操作禁用、执行时间限制都有。

沙盒执行嘛,说白了就是给 PHP 代码套个笼子。像用户写的一段代码,正常你直接 eval 肯定不安全,用沙盒跑就可以限制它干坏事,比如访问文件、跑系统命令这些。

项目里用到了 opis/closure 之类的库,作用就是让你能在一定规则下“放心”地执行代码。比如只允许用字符串操作函数、不让访问数据库类。

你可以拿它来做在线代码编辑器,或者给用户开放插件系统,但又不想他们搞出事来——就挺合适。配合好日志、异常、执行时长限制,安全性可以做到比较高。

注意沙盒多少会有点性能开销,不过一般短小的逻辑没太大问题。开发时也别忘了加个防超时、防死循环的机制,保险点总没错。

如果你平时用 Yii2,刚好有动态执行 PHP 的需求,这份资源蛮值得一看。安全性+可扩展性兼顾,实用性挺强的。

zip 文件大小:20.25MB