我正在尝试创建一个流行网站的私有克隆版,该网站提供“在线编写php代码”的功能,作为个人练习。
现有的框架提供了网站页面服务(前置控制器、ORM等),因此我无法在PHP INI中使用DISABLE FUNCTIONS。否则,任何东西都将不可用。
我试图将输入保存在文件中,然后像以下代码一样运行它:
但是输出的错误信息将不会与apache的错误信息相同。
我尝试采用的最终解决方案是在httpd.conf或.htaccess中使用php_value或php_admin_value,以便禁用一整个列表(正如您可以想象的那样)的危险函数。
然而...
- 我在文本区域中编写一些代码
- 服务器端以某种方式执行代码
- 输出被返回
现有的框架提供了网站页面服务(前置控制器、ORM等),因此我无法在PHP INI中使用DISABLE FUNCTIONS。否则,任何东西都将不可用。
我试图将输入保存在文件中,然后像以下代码一样运行它:
exec("php -c mycustomphpinifile input.php 2>&1 > output.txt");
但是输出的错误信息将不会与apache的错误信息相同。
我尝试采用的最终解决方案是在httpd.conf或.htaccess中使用php_value或php_admin_value,以便禁用一整个列表(正如您可以想象的那样)的危险函数。
然而...
php_value disable_functions "my,functions,comma,separated"
似乎无法适应如此大的列表。 我必须禁用大约2k个函数:在htaccess中使用php_value时是否存在缓冲区大小问题?有人可以猜测这个问题的解决方案吗?