3

我有一个关于 PHP 的问题,但我们需要限制 PHP 脚本安全运行。理想情况下应该是这样的:

  1. 核心代码将位于 public_html 之外,例如 /etc/app/

  2. 所有站点都将使用相同的核心。每个站点的“用户”都应该被限制在公共文件夹中,但是核心代码应该是可读和可执行但不可编辑的

我在想我们可以将它添加到打开基本目录,或者可以将其符号链接到每个站点并将其设置在与所有站点用户相同的组中(因此具有读取/执行权限)

我对这种环境真的很陌生,所以我想知道我是否忽略了什么?

- - 编辑

更多信息:

  1. 我正在使用 php5-fpm
  2. 我正在关注这个 tut以确保脚本在特定用户/组下运行
  3. 安全运行,我的意思是即使允许用户上传自己的脚本,他们也不应该有权做任何可能影响其他帐户的事情(例如将恶意文件放在其他帐户上,编辑核心文件, ETC...)
4

1 回答 1

0

一种方法是简单地将 symofny2 的路径放在文件中的include_path指令中php.ini。因此,当您使用 时includerequirePHP 将尝试通过查找 s 来找到所需的文件include_path并提供它。

您唯一需要做的就是保护文件

  • chown -R root.root /path/to/symfony2_core
  • find /path/to/symfony2_core -type f -name "*.php*" -exec chmod 755 {} \;

请记住,不要制作文件apachephp文件的所有者,因为这可能会被用作漏洞利用。(即如果http服务器是所有者,在某些情况下用户可以简单地通过执行覆盖文件shell_exec('echo "do something nasty here." > /path/to/symfony2_core/Kernel.php')

于 2013-11-02T01:57:21.220 回答