Segurança do Apache e do PHP-FPM com o mod_proxy_fcgi

1

Eu uso o PHP-FPM em uma configuração de hospedagem compartilhada. Cada pool do FPM é executado como um usuário diferente. O Apache é executado como www-data. O Apache se conecta por meio de um soquete usando o mod_proxy_fcgi. Eu permito que os usuários usem arquivos .htaccess.

Como evito que um usuário se conecte ao pool incorreto do FPM?

O vhost se parece com algo assim:

<VirtualHost *:80>
        ServerName foo.com
        DocumentRoot /var/www/sites/foo.com/html
        <FilesMatch "\.php$">
                SetHandler "proxy:unix:/var/run/foo-com-fpm.sock|fcgi://localhost"
        </FilesMatch>
</VirtualHost>

Mas, o usuário foo-com pode facilmente substituir esse manipulador de seu .htaccess:

<FilesMatch "\.php$">
        SetHandler "proxy:unix:/var/run/bar-com-fpm.sock|fcgi://localhost"
</FilesMatch>

Isso permitiria que ele executasse scripts PHP como um usuário diferente. Como posso evitar isso, sem desautorizar as substituições do FileInfo?

    
por Sander Marechal 19.09.2018 / 12:29

1 resposta

1

AllowOverrideList permite restringir ainda mais as diretivas .htaccess para a lista especificada.

Citação dos documentos:

When this directive is set to None and AllowOverride is set to None, then .htaccessfiles are completely ignored. In this case, the server will not even attempt to read .htaccessfiles in the filesystem.

Example:

AllowOverride None AllowOverrideList Redirect RedirectMatch

In the example above, only the Redirect andRedirectMatch directives are allowed. All others will cause an internal server error.

Example:

AllowOverride AuthConfig AllowOverrideList CookieTracking CookieName

In the example above, AllowOverride grants permission to the AuthConfig directive grouping and AllowOverrideList grants permission to only two directives from the FileInfo directive grouping. All others will cause an internal server error.

    
por 19.09.2018 / 13:14