【问题标题】:Isolated PHP Execution Region隔离的 PHP 执行区域
【发布时间】:2011-07-06 00:18:11
【问题描述】:

是否可以仅包含有限变量的 php 脚本(鉴于项目当前的性质,可能会搞砸)。

这是因为我想将文件作为数据模板运行,但我没有用户能够访问所有数据。特别是在共享服务上。我不想在每个变量上都使用 unset,因为稍后我会再次需要它们。

我希望能够在解释器中打开一个私有区域,这样我就可以只使用某些变量来运行脚本,长话短说。

提前致谢。

【问题讨论】:

  • 还应该补充一点,它需要不受全局链接的影响
  • 您基本上是在询问是否可以以安全的方式运行任意用户提供的代码。明显的反应是:不要那样做!为什么要这样做?
  • 在 PHP 领域,您的问题没有意义。您的意思是父脚本 A 定义了一些变量,而您希望 included 脚本 B 仅“导入”或“使用”或“具有可见性”其中的一两个?
  • 它是一个包含大量狡猾的更大计划的一部分。我正在考虑包含,但我无法隐藏其他变量。
  • 你可能会发现这个问题很有帮助stackoverflow.com/questions/324726/…

标签: php


【解决方案1】:

您可以创建临时文件并使用类似的东西执行它

exec("php -f /path/to/temporary/script.php");

【讨论】:

  • 有没有在其中定义一些变量?
  • @Chris Goddard:将您想要的任何代码(您的 vars 定义)放在那里并附加用户的自定义脚本
  • 这个“有效”,但仍然是一个安全漏洞,除非你对各种事情进行严格的锁定......
  • @Oli Charlesworth:是的,但我希望 OP 能理解 ;-)
  • 是的,这就是我的目标,使其更安全。生病可能会寻找一种仅允许其中某些功能的方法。只允许查看某些文件目录,禁止某些变量调用和子程序 hmmm
猜你喜欢
  • 2015-05-14
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 2011-08-17
相关资源
最近更新 更多