0

不久前,我升级到了专用服务器,为了让它对我来说更具成本效益,我决定将服务器上的一些空间租给我认识的人(朋友、家人)。我认识的一些人有其他人负责网站开发,我想保护自己免受未经授权的访问,以防止未经授权访问我或我租给的任何其他人。

我最关心的情况之一是 PHP 通过../从他们的根访问来访问其他用户或我。

例如,他们可以这样做:foreach(glob('../*/*.*') as $some_file){unlink($some_file);}这将删除同级用户的所有文件。

我如何避免人们做这种事情?

4

2 回答 2

2

这听起来像是可以通过系统管理解决的问题。

  • 编辑您的 php.ini 文件,限制 open_basedir 中的值
  • 确保您的用户被分配到不同的组
  • chmod 您的主目录 og-wx(例如 744、740、700 等...)
  • 运行多个 apache 服务器实例,可能在不同的用户/组下

这实际上取决于您要投入多少精力以及安全性需要多么强大。


http://www.php.net/manual/en/ini.core.php#ini.open-basedir http://wiki.apache.org/httpd/RunningMultipleApacheInstances

于 2012-11-22T02:37:23.310 回答
0

您应该考虑关于权限的 dctrucker 帖子,并确保 apache 进程(如果您使用 mod_php 运行 php)或 php 进程(如果您在 fast-cgi 上运行它)没有更改权限的权限。如果您担心安全性,我不会建议使用 base_opendir 方法,因为这样就可以使用 ini_set 来覆盖它(因此,如果使用这种方法,您也应该禁用 ini_set )。

于 2012-11-22T02:59:25.307 回答