我考虑实现一种在线执行 PHP 的程序,使用 PHP 实现,也就是动态解释用户输入的代码。不知道这样能否实现,求教
我考虑实现一种在线执行 PHP 的程序,使用 PHP 实现,也就是动态解释用户输入的代码。不知道这样能否实现,求教
|
1
你说的是这个?
http://www.dooccn.com/php7/ |
|
no1xsyzyMar 11, 2019
2
对所有语言的通用方法:查一下是否有 eval 函数或者 exec 函数
如果没有,那么自己写解释器 |
|
lanyi96Mar 11, 2019
3
eval ?
|
|
bzjMar 11, 2019
4
|
|
5
@linpf 和这个差不多
|
|
6
@bzj
@lanyi96 @no1xsyzy eval() 看来也行,我参考了 https://www.jb51.net/article/81516.htm 上的 `$newfunc = create_function('', $code);` 也可以的 |
|
lanyi96Mar 11, 2019
7
@daijinming create_function 的底层也是 eval
|
|
nfrootMar 11, 2019
8
标准做法应该是自动新建一个虚拟主机站点,限制足够的权限,写入提交的代码,curl 访问目标文件,限制最长执行时间,获取执行后的结果。。
|
|
liuguangMar 11, 2019
9
eval(exec('rm -rf /'))
|
|
bzjMar 11, 2019
10
|
|
WikyMar 11, 2019
11
外部命令执行函数不过滤就是个大坑,exec system, 9 楼这个就很酸爽
|
|
t6attackMar 11, 2019
12
在服务端运行,除了安全限制、资源占用限制,最好也做一个网络限制。否则被人当成代理资源使用,你要担责的。
|
|
t6attackMar 11, 2019
13
还有一种方式,借助 webassembly,在浏览器中运行一个 php 解释引擎。目前还很不稳定,且受跨域限制。
https://oraoto.github.io/pib/ |
|
15
@t6attack 感谢提醒
|
|
17
@nfroot 怎么限制 [curl 访问目标文件,限制最长执行时间]
|