
Auditor automatizado de configuração PHP que verifica o php.ini em busca de configurações de segurança incorretas, suporta modos CLI e web, e gera resultados em texto, HTML ou JSON.
Verifica a configuração atual do PHP em busca de possíveis falhas de segurança.
Simplesmente acesse este arquivo do seu servidor web ou execute via CLI.
Este software foi escrito por Ben Fuhrmannek, SektionEins GmbH, em um esforço para automatizar verificações do php.ini e gastar mais tempo em tarefas alegres.
CLI: Simplesmente execute php phpconfigcheck.php. É isso. Adicione -a para ver também resultados ocultos, -h para saída HTML e -j para saída JSON.
WEB: Copie este script para qualquer diretório acessível pelo seu servidor web, ex.: sua raiz de documentos. Veja também 'Salvaguardas' abaixo.
A saída no modo não-CLI é HTML por padrão. Este comportamento pode ser alterado definindo a variável de ambiente PCC_OUTPUT_TYPE=text ou PCC_OUTPUT_TYPE=json.
Alguns casos de teste estão ocultos por padrão, especificamente ignorados, ok e desconhecidos/não testados. Para mostrar todos os resultados, use phpconfigcheck.php?showall=1. Isso não se aplica à saída JSON, que retorna todos os resultados por padrão.
Para controlar o formato de saída no modo WEB, use phpconfigcheck.php?format=..., onde o valor de format pode ser text, html ou json. Por exemplo: phpconfigcheck.php?format=text. O parâmetro format tem precedência sobre PCC_OUTPUT_TYPE.
Na maioria das vezes, é uma boa ideia manter questões relacionadas à segurança, como sua configuração do PHP, para si mesmo. As seguintes salvaguardas foram implementadas:
verificação mtime: Este script para de funcionar no modo não-CLI após dois dias. Reativar a verificação pode ser feito com touch phpconfigcheck.php ou copiando o script novamente para o servidor (ex.: via SCP). Esta verificação pode ser desabilitada definindo a variável de ambiente: PCC_DISABLE_MTIME=1, ex.: SetEnv PCC_DISABLE_MTIME 1 no .htaccess do Apache.
verificação de origem IP: Por padrão, apenas localhost (127.0.0.1 e ::1) pode acessar este script. Outros hosts podem ser adicionados definindo PCC_ALLOW_IP para seu endereço IP ou um padrão curinga, ex.: SetEnv PCC_ALLOW_IP 10.0.0.* no .htaccess. Você também pode optar por acessar seu servidor web via encaminhamento de porta SSH, ex.: ssh -D ou ssh -L.
funções desabilitadas: Este script precisa de algumas funções para funcionar corretamente, como ini_get() e stat(). Se uma dessas funções estiver na lista negra (ou não na lista branca), a execução falhará ou produzirá saída inválida. Nestes casos, é possível colocar temporariamente o Suhosin em modo de simulação e omitir disable_functions. Para estar seguro, uma configuração de segurança relaxada pode ser feita com .htaccess em um diretório separado. Além disso, este script pode ser chamado da linha de comando com a configuração do seu servidor web, ex.: php -n -c /etc/.../php.ini phpconfigcheck.php.
CLI: Versões antigas do PHP não conhecem o nome SAPI 'cli' e usam saída estilo CGI mesmo no cli. Solução alternativa: PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
Esta ferramenta apenas o ajudará a configurar um ambiente PHP seguro. Nada mais. Sua configuração, software ou qualquer configuração relacionada ainda pode estar vulnerável, mesmo que a saída desta ferramenta sugira o contrário.