apache + php-fpm e segurança no ambiente compartilhado em comparação com o apache + suexec + mod_fastcgi

1

Eu tenho usado o Apache com suexec e mod_fastcgi. Ele inicia manipuladores PHP como o usuário do sistema selecionado e ouve solicitações via PIPES (protocolo fastcgi). Funciona bem, mas não pode compartilhar opcode através de muitos manipuladores.

Eu tenho investigado a abordagem php-fpm. Está muito mal documentado. O que eu posso ver é que ele é executado apenas como servidor TCP fastcgi, como 127.0.0.1:9999, sob o usuário do sistema selecionado, e o Apache precisa se conectar a ele usando o FastCGIExternalServer ou o mod proxy do fastcgi.

O que impedirá que outros usuários locais se conectem ao 127.0.0.1:9999 e passem seu próprio código para o manipulador que está sendo executado como outro usuário do sistema?

Isso parece totalmente não seguro no ambiente compartilhado. Estou faltando alguma coisa ou o quê?

    
por user172372 04.05.2013 / 04:23

1 resposta

0

Sim, eles podem enviar solicitações, mas como isso é diferente de eles fazerem uma solicitação no navegador ou no wget? Tudo o que eles conseguirão é a saída do php.

Eles podem causar problemas pressionando o servidor php-fpm com solicitações. Mas qualquer entrada que eles possam enviar deve ser tratada, bem como se vier de uma solicitação do navegador.

Mas, eles estão entrando depois que qualquer verificação de segurança do apache / nginx pode ter sido feita, como o mod_security etc. Então, isso pode ser uma preocupação se você tiver um aplicativo php vulnerável.

Mas se você tiver seus pools configurados para executar cada pool como um usuário separado e manter os arquivos php configurados como não legíveis para o mundo, isso não deve ser tão ruim, a menos que eu esteja perdendo algo também.

    
por 04.05.2013 / 05:54