指向 webroot 之外目录的符号链接的安全性是否设置为 777?

指向 webroot 之外目录的符号链接的安全性是否设置为 777?

我有几个网站使用相同的缓存天气报告,所以我想将它们全部放在同一个文件夹中。最合理的方法似乎是将此文件夹放在 webroot 之外。访问此新文件夹的最简单方法似乎是从 webroot 中的旧文件夹设置符号链接。

我担心的是,我必须将新目录设置为 777,因为我对 PHP 使用了 FasCGI,因此每个网站都有不同的用户。

所以第一个问题是,安全隐患是什么 - 这是否与在 webroot 中拥有 777 文件夹相同?

其次,如果这是一个问题,最好的解决方案是什么。

顺便说一句,这是在运行 Plesk 10.4 的 Centos 6.2 服务器上,如果有任何区别的话。

蒂娅·克里斯

答案1

关于安全隐患我无法说,但我认为如果攻击者设法利用天气数据就是最小的问题。

关于权限 - 让所有 Web 用户成为共同组的成员(如果他们还不是的话)并更改文件的所有权。这样,您只能向该组授予访问权限。另外,为什么 Web 用户需要对文件具有写访问权限?

答案2

可以使用以下方式在 Apache Web 服务器上的多个虚拟主机之间共享目录Aliasmod_alias 中的指令您需要在每个<VirtualHost>条目中放置类似这样的节,如下所示:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com example.org www.example.org

    ScriptAlias /cgi-bin/ "/path/to/webroot/.cgi-bin/"

    <Directory "/path/to/webroot">
        Options Indexes Includes FollowSymLinks ExecCGI
        AllowOverride All
        AddHandler php5-fastcgi .php .php5 .php4
        Action php5-fastcgi /cgi-bin/php5.fcgi
        Order allow,deny
        Allow from All
    </Directory>

    Alias /reports "/path/to/weather/reports"
    <Directory "/path/to/weather/reports">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

这会将 中的文件映射/path/to/weather/reports到 ,http://example.com/reports/以便您可以对 放置更合理的文件权限/path/to/weather/reports。目录应该需要适当的权限,以便 Apache 可以遍历它,因此您可以按照 tsurko 的建议并设置一个组(例如fcgiusers),将用户添加到该组(通过运行 之类的命令usermod -a -G fcgiusers USERNAME),并授予该组对共享位置中的文件夹和文件的权限。以 root 权限运行这些命令应该可以解决问题:

chown -Rv apache:fcgiusers /path/to/weather/reports;
find /path/to/weather/reports  -type d -exec chmod 0775 {} \;
find /path/to/weather/reports  -type f -exec chmod 0664 {} \;  

相关内容