php - 如何在 php 中保护 php 在线编辑器?

标签 php security editor disabled-input

我创建了一个使用文件功能的 php 编辑器,用户可以在其中在线运行代码并在同一页面上获得结果。

执行php5.php

<form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
  <b>Write your code here</b>
  <textarea name="code"></textarea>
  <input type="submit"value="Run code">
</form>
<?php
$cd=stripslashes($_POST['code']);
#dont write empty textarea
if(empty($cd)) {
  echo "";
} else {
  $file=fopen("demo.php","w");
  echo fwrite($file, $cd);
  fclose($file);
}
?>

<b>Results:</b>
<hr>
<?php
  error_reporting(E_ALL);
  include "demo.php";
?>

demo.php是表单更新的目标文件。

这一切都按预期工作。我的问题是我想为这个编辑器禁用所有文件、目录、mail() 和 ftp 功能,这样用户就不会使站点崩溃。

有没有办法只为我的编辑器禁用这些功能?

最佳答案

您可以传入 disable_functions,即“在沙箱子解释器中禁用的逗号分隔函数列表。”

检查 Runkit_Sandbox .您应该将编辑器作为沙箱提供。

关于php - 如何在 php 中保护 php 在线编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34013566/

相关文章:

通过 SSH 访问的 Linux XML 编辑器?

php - Unix 权限,读取与执行(PHP 上下文)

javascript - 为什么这个被屏蔽的 JS 代码在 GET 参数 : '*alert(13)*' executed on my page?

security - 如何在使用容器管理的安全性时从数据库中检索用户名、密码和角色而不是从 tomcat-user.xml 中检索它们

java - 无法从 CMSSigned 数据获取 SignerCertificate

emacs - GNU Emacs : skeleton-mode, 还在使用吗?

带有拼写检查的 Javascript RTE

php - 警告 : Cannot connect to database (connecting to 3. 22、不支持 3.23 和 4.0)SQLSTATE [HY000] [2054]

php - Plupload:如何从 PHP 处理脚本中获取文件名

php - 同时插入多个外键