当前位置:  开发笔记 > 编程语言 > 正文

有没有办法在php中的沙盒中执行php代码

如何解决《有没有办法在php中的沙盒中执行php代码》经验,为你挑选了2个好方法。

我想从php执行一个php脚本,它将使用不同的常量和已经定义的不同版本的类.

是否有沙箱php_module我可以:

sandbox('script.php'); // run in a new php environment

代替

include('script.php'); // run in the same environment

或者proc_open()是唯一的选择吗?

PS:无法通过网络访问该脚本,因此fopen(' http://host/script.php ')不是一个选项.



1> troelskn..:

有runkit,但如果您不需要主进程和子进程之间的任何交互,您可能会发现通过命令行(使用shell_exec)调用脚本更简单.


关于runkit; 它似乎不是沙盒的描述,或者我可能应该说容易.你可以禁止功能,但我宁愿禁止ALL,只提供列表中的所有功能.如果用户需要功能,我可以根据要求手动评估其安全性.似乎唯一的方法是编写一个定制的解释器.如果速度是一个问题,你可以让它将其转换为PHP或其他语言,这实际上是我现在要做的,因为我找不到一个现成的解决方案.干杯! PS.是的,我看到这个Q已经老了.DS.

2> 小智..:

GitHub上的一个类可能有所帮助,早期阶段但看起来很有希望.

https://github.com/fregster/PHPSandbox

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有