Protegendo o PHP via open_basedir baseado no caminho do script

3

Eu tenho vários usuários executando scripts PHP em um servidor e gostaria de bloqueá-lo para que seus scripts possam acessar apenas os arquivos em seu diretório www (ele não usa contas de usuário linux, então não há diretório inicial).

open_basedir parece ser a escolha óbvia, mas como posso definir esse parâmetro com base em onde o script está sendo executado? Obviamente, o valor para open_basedir seria diferente para cada usuário.

Estou executando o PHP5-FPM - PHP5 como um processo FastCGI ao qual o nginx se conecta - no Ubuntu 11.04

Qualquer ajuda ou conselho apreciado!

    
por Tak 30.11.2011 / 22:55

2 respostas

3

Eu descobri as diretivas solution - php.ini com base no caminho do arquivo ou no host de solicitação. A partir da documentação :

[HOST=dev.site.com]
open_basedir = /var/www/dev.site.com

ou

[PATH=/var/www/dev.site.com]
open_basedir = /var/www/dev.site.com
    
por 30.11.2011 / 23:56
1

Supondo que você esteja usando o Apache, você deve ser capaz de configurá-lo em cada instância do VirtualHost com: -

php_admin_value open_basedir /path/to/restrict/to

Resista à tentação de usar . , pois o usuário ainda pode alterar o diretório com chdir .

link tem um pouco mais de informação também.

    
por 30.11.2011 / 23:10