Назад | Перейти на главную страницу

Безопасность символической ссылки на каталог за пределами веб-корневого каталога установлена ​​на 777?

У меня есть несколько веб-сайтов, которые используют одни и те же кешированные отчеты о погоде, поэтому я хотел, чтобы все они были в одной папке. Казалось, что наиболее логичный способ сделать это - оставить эту папку вне корневого каталога. Также казалось, что самый простой способ получить доступ к этой новой папке - это установить символические ссылки из старых папок в корневом веб-каталоге.

Что меня беспокоит, так это то, что мне пришлось установить новый каталог на 777, поскольку я использую FasCGI для своего PHP, и поэтому на каждом веб-сайте есть другой пользователь.

Итак, первый вопрос: каковы последствия для безопасности - это то же самое, что наличие папки 777 в корневом веб-каталоге?

Во-вторых. Если это проблема, какое лучшее решение.

Кстати, это на сервере Centos 6.2 под управлением Plesk 10.4, если это имеет значение.

ТИА Крис

Можно совместно использовать каталог между несколькими виртуальными хостами на веб-сервере Apache, используя Alias директива в mod_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 {} \;  

О последствиях для безопасности я не могу сказать, но я думаю, что если злоумышленнику удалось использовать данные о погоде, это ваша самая маленькая проблема.

О разрешениях - сделайте всех пользователей сети членами общей группы (если они еще не были) и измените владельца файлов. Таким образом, вы можете предоставить доступ только группе. Также, почему веб-пользователям нужен доступ на запись к файлам?