我正在构建一个教学工具Web应用程序,允许用户将php类作为文本提交,然后应用程序将运行它们.我认为Runkit_Sandbox是这项工作的工具,但是文档并没有提供关于使用哪种配置的建议.
是否有已建立的应禁用的功能列表?还是上课?我打算将所有其他配置设置为尽可能限制(例如关闭url fopen),但我甚至不能100%确定它们是什么.任何建议都非常感谢.
该功能的主要部分是沙箱 (Runkit_Sandbox 类)。使用它们,您可以在隔离环境中运行 PHP 代码。每个沙箱都可以配置自己的 PHP 安全选项,例如safe_mode、safe_mode_gid、safe_mode_include_dir、open_basedir、allow_url_fopen、disable_functions、disable_classes。
此外,每个沙箱都可以有 Runkit 的 INI 设置的单独值:自己的全局变量和禁止覆盖内置函数。
沙箱可以加载 PHP 文件(通过 include()、include_once()、require() 和 require_once())、调用内部函数、执行任意 PHP 代码并打印包含的变量值。此外,您还可以指定一个函数来捕获和处理沙箱的输出。
在沙箱中,您可以创建反沙箱类Runkit_Sandbox_Parent的对象,该对象将沙箱与其父环境连接起来。反沙箱的功能与沙箱的功能非常相似,但出于安全原因,应在沙箱创建期间显式启用与外部环境的每种类型的通信。
| 归档时间: |
|
| 查看次数: |
553 次 |
| 最近记录: |