AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1046743
Accepted
SirLouen
SirLouen
Asked: 2020-12-19 03:32:36 +0800 CST2020-12-19 03:32:36 +0800 CST 2020-12-19 03:32:36 +0800 CST

保护同一 Apache 目录中包含的站点

  • 772

/var/www我已经在不同的子目录中设置了我的所有网站。假设我有 5 个基于 CMS 的站点,例如WordPress /var/www/a.com、/var/www/b.com、和./var/www/c.com/var/www/d.com/var/www/e.com

但我发现,如果我向 中的某个人授予管理员权限a.com,使用某些插件,他们可以访问到/var/www,并访问不同的目录,比如说/var/www/c.com,因此他们可以通过阅读例如配置文件来获得访问权限( wp-config.php) 在 WordPress 的情况下,因为最终目录列表插件通过可能具有组访问权限的 Web 服务器执行此操作。

我找到的唯一解决方案是仅在此文件中限制对来宾和组的完全访问,因此从技术上讲,它只能通过具有 root 访问权限的 SSH 访问,但这可能会导致错误,因为 Web 服务器将无法访问,除非Web 服务器用户是所有者。

这使我得出结论,如果您在同一主机上托管多个站点,并且它们运行相同的 Web 服务器守护程序,则存在固有风险。但是应该有一个解决方案,因为这是由世界各地的数百个虚拟主机完成的。

鉴于这种情况,谁能推荐我一个解决方案?

chmod apache-2.4
  • 2 2 个回答
  • 101 Views

2 个回答

  • Voted
  1. Maxence
    2021-01-09T02:20:59+08:002021-01-09T02:20:59+08:00

    如果您使用PHP并且想要阻止任何 php 脚本浏览当前网站以外的其他目录,那么最简单的方法是,您可以使用open_basedir

    更多信息:https ://www.php.net/manual/en/ini.core.php#ini.open-basedir

    编辑: 为了像 Gerald Schneider 所说的那样更安全,请将您的 open_basedir 添加到您的网络服务器配置或 php 池中。

    在您的网站文件夹中添加一个 .user.ini 文件并更改所有者权限以不让您的网络服务器或 php 编辑/删除此文件。

    例子 :/var/www/a.com/.user.ini

    添加类似这样的内容:

    open_basedir = "/var/www/a.com:/tmp"

    所以这意味着,对于 PHP,它将无法解析这些路径之外的内容(/var/www/a.com 和 /tmp,需要上传)。

    检查您的 php.ini 以启用此配置文件,检查它,执行phpinfo()并检查user_ini.filename

    更多信息:https ://www.php.net/configuration.file.per-user

    此提示仅保护您免受使用 PHP 函数的 PHP 脚本的影响,您无需更改任何目录权限,但如果有人想使用 PHP 执行批处理脚本,它可以解析其他文件夹,如果您使用 sftp、ftp 或其他东西浏览您的文件,此规则将不起作用。

    • 0
  2. Best Answer
    SirLouen
    2022-05-09T10:32:41+08:002022-05-09T10:32:41+08:00

    解决方案是使用 PHP FPM 池,因此每个目录将由不同的用户运行。

    我之前忘了写这个,但这就是我解决问题的方法,现在文件权限很有意义,因为我可以按照 UNIX 经典文件系统权限控制的意图对所有者、组和来宾权限进行巨大控制。

    • 0

相关问题

  • 有没有办法在 Windows 上运行 chmod

  • 如何从整个文件系统的扩展权限集恢复对 RHEL 系统的远程访问?[复制]

  • 哪些 CHMOD 设置可以防止用户查看目录?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve