Segurança do symlink para o diretório fora do webroot configurado para 777?

3

Eu tenho alguns sites que usam os mesmos relatórios do tempo em cache, então eu queria todos eles na mesma pasta. Parecia que a maneira mais lógica de fazer isso seria, mas esta pasta fora do webroot. Também parecia que a maneira mais fácil de acessar essa nova pasta seria definir links sym das pastas antigas dentro da webroot.

O que me preocupa é que tive que configurar o novo diretório para o 777, já que estou usando o FasCGI para meu PHP e, portanto, cada site tem um usuário diferente.

Então, primeira pergunta, quais são as implicações de segurança - isso é o mesmo que ter uma pasta 777 dentro do webroot?

Em segundo lugar. Se isso é um problema, qual é a melhor solução.

BTW isto é no servidor Centos 6.2 rodando o Plesk 10.4 se isso faz alguma diferença.

TIA Chris

    
por Chris Leather 14.01.2013 / 12:32

2 respostas

0

Sobre as implicações de segurança não posso dizer, mas acho que, se um invasor conseguiu explorar os dados meteorológicos, é o menor problema.

Sobre as permissões - torne todos os usuários da Web membros do grupo comum (se ainda não o são) e altere a propriedade dos arquivos. Dessa forma, você pode conceder acesso apenas ao grupo. Além disso, por que os usuários da Web precisam de acesso de gravação nos arquivos?

    
por 14.01.2013 / 13:29
0

É possível compartilhar um diretório entre vários hosts virtuais em um servidor Apache usando o Alias diretiva em mod_alias . Você precisaria colocar algo como esta sub-rotina em cada entrada <VirtualHost> da seguinte forma:

<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>

Isso mapearia os arquivos em /path/to/weather/reports para http://example.com/reports/ , para que você possa colocar as permissões de arquivos mais limpos em /path/to/weather/reports . O diretório deve requerer permissões adequadas para o Apache atravessá-lo, para que você possa seguir a recomendação do tsurko e configurar um grupo (por exemplo, fcgiusers ), adicionar os usuários ao grupo (executando um comando como usermod -a -G fcgiusers USERNAME ) e as permissões do grupo para as pastas e arquivos no local compartilhado. Esses comandos executados com privilégios de root devem funcionar:

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 {} \;  
    
por 03.04.2013 / 04:35