É possível obter informações sobre a versão do PHP em um servidor remoto, a partir de um simples terminal.
Vou mostrar como fazer isto, do console do Linux e, caso você queira saber, vou mostrar como dificultar que estranhos obtenham esta informação do seu servidor.
Ocultar a versão do PHP a requisições remotas, pode ser útil para evitar que visitantes maliciosos conheçam a que vulnerabilidades o seu site pode estar exposto.
Pode ser recomendado como um primeiro passo básico (de muitos outros) para tornar o seu servidor mais seguro.
Como se trata de segurança por obscuridade, recomenda-se não ficar dependente exclusivamente deste método.
Como obter a versão do PHP, de um servidor remoto
Tal como visto no texto Como descobrir a versão do Apache em execução, é possível obter informações diversas de um servidor remoto com o uso do comando HEAD.
Veja como obter informações sobre o PHP, no servidor:
HEAD http://localhost/sites/ial/site/index.php
Observe as informações na última linha:
200 OK Connection: close Date: Wed, 11 Mar 2015 20:40:37 GMT Server: Apache Content-Type: text/html Client-Date: Wed, 11 Mar 2015 20:40:37 GMT Client-Peer: 127.0.0.1:80 Client-Response-Num: 1 X-Powered-By: PHP/5.5.9-1ubuntu4.6
É importante indicar uma página .php na linha de comando do HEAD, para obter um resultado significativo.
Este é o banner que o (meu) PHP adiciona às informações do sistema: X-Powered-By: PHP/5.5.9-1ubuntu4.6
.
Como determinar a localização do arquivo php.ini
Vamos ao arquivo de configuração, para ajustar a diretiva adequada.
A localização do arquivo de configuração do PHP php.ini
pode variar em função do sistema operacional em uso (Linux, Unix, Windows, MacOS etc.)
No Ubuntu 14.04 LTS e em outras distrbuições Linux baseadas no Debian o arquivo de configuração a ser alterado é /etc/php5/apache2/php.ini
.
Se você tiver dúvidas, uma maneira eficiente de encontrar o arquivo de configuração do PHP é usar o comando locate com o comando grep. Veja:
locate php.ini | grep apache
O meu foi encontrado aqui:
/etc/php5/apache2/php.ini
Como desabilitar a exibição do banner de informações do PHP no servidor
Uma vez determinado o seu arquivo de configuração php.ini, faça uma cópia de segurança, antes de alterá-lo:
sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.original
A seguir, abra o arquivo e localize a linha que contém expose_php On
e altere-a para expose_php Off
. Salve o arquivo e feche o editor.
De volta ao terminal, reinicie o Apache:
sudo apachectl stop sudo apachectl start
Se o Apache estiver exibindo a mensagem “Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName”, leia este artigo, depois.
Agora, faça o teste:
HEAD http://localhost/sites/ial/site/index.php
Observe as informações na última linha:
200 OK Connection: close Date: Wed, 11 Mar 2015 20:40:37 GMT Server: Apache Content-Type: text/html Client-Date: Wed, 11 Mar 2015 20:40:37 GMT Client-Peer: 127.0.0.1:80 Client-Response-Num: 1
Você pode obter mais informações sobre a configuração do PHP, no manual online: php.net/manual/pt_BR/