php elephpant in a pad lock

Como determinar a versão do PHP no servidor

É 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.
php logo elephpant
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
The elephant inside the snake  - O elefante dentro da cobra - em o pequeno príncipe
Tentar encontrar o arquivo de configuração do PHP, me fez pensar no “O Pequeno Príncipe”.

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/

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *