Em 30 de novembro de 2017, a equipe do PHP lançou o PHP 7.2, que incorporou a extensão sodium (libsodium), passou a aceitar Argon2 no hash de senhas e removeu a antiga extensão mcrypt. No mesmo ano, o PHP 5.6 entrou na fase de apenas correções de segurança.
Em 30 de novembro de 2017, a equipe de desenvolvimento do PHP anunciou o PHP 7.2.0, a segunda atualização de recursos da série 7. Do ponto de vista de segurança, a versão trouxe três mudanças importantes: incorporou a extensão sodium, baseada na biblioteca de criptografia libsodium; passou a aceitar o algoritmo Argon2 na função de hash de senhas; e removeu a extensão mcrypt. No mesmo ano, em janeiro, o projeto informou que o PHP 5.6 estava em sua última versão planejada com correções regulares, passando a receber apenas correções de segurança por dois anos.
Para empresas que mantêm sistemas web em PHP, 2017 reforçou a necessidade de atualizar tanto a versão da linguagem quanto a forma como o código trata criptografia e senhas.
O que o PHP 7.2 trouxe de novo?
Segundo o anúncio no site oficial, os principais itens da versão foram:
- Extensão sodium (libsodium): nova extensão de criptografia incluída na linguagem.
- Argon2 no hash de senhas: novo algoritmo disponível na função de hash de senhas.
- Remoção do mcrypt: a antiga extensão de criptografia deixou de fazer parte do PHP.
- Constantes TLS aprimoradas.
- Object typehint: possibilidade de declarar o tipo genérico "object".
- HashContext como objeto.
- Conversão de chaves numéricas em conversões entre objetos e arrays.
- Contagem de objetos não contáveis: mudança de comportamento ao usar
count().
A versão beta 1, de 20 de julho de 2017, já havia antecipado a extensão sodium, melhorias no OPcache e melhor tratamento de UTF-8 inválido em json_decode(). O projeto indicou o guia de migração do manual para as mudanças incompatíveis.
Por que as mudanças de criptografia importam?
Para equipes de desenvolvimento, as mudanças tinham efeitos práticos:
- Código que usava mcrypt precisava ser revisto: aplicações que dependiam da extensão removida deixariam de funcionar no PHP 7.2 sem adaptação.
- Criptografia mais acessível: com a extensão sodium incluída, desenvolvedores passaram a ter uma biblioteca moderna disponível sem instalar componentes extras.
- Senhas mais protegidas: a disponibilidade do Argon2 deu mais uma opção para armazenar senhas de forma resistente a ataques.
- Migração planejada: a remoção de uma extensão exige inventário de dependências antes da atualização do servidor.
Como estava o ciclo de versões em 2017?
| Versão | Situação em 2017 |
|---|---|
| PHP 5.6 | Versão 5.6.30, de 19 de janeiro, foi a última planejada com correções regulares; depois, apenas segurança por dois anos |
| PHP 7.0 | Lançado em dezembro de 2015, em manutenção |
| PHP 7.1 | Lançado em 1º de dezembro de 2016 |
| PHP 7.2 | Lançado em 30 de novembro de 2017 |
O próprio anúncio do PHP 5.6.30 encorajou quem precisasse de correções de bugs a migrar para o PHP 7.
O que isso significava para sistemas legados?
Em 2017, muitas aplicações ainda rodavam em PHP 5.x. Com o 5.6 entrando em fase final e o 7.2 removendo componentes antigos, a distância entre sistemas legados e as versões suportadas aumentava. Quanto mais tempo um sistema fica sem atualização, mais caras tendem a ser as mudanças necessárias para trazê-lo de volta a uma versão com suporte, especialmente quando envolvem criptografia e autenticação.
O que isso significa hoje para quem contrata uma software house?
O lançamento do PHP 7.2 mostra que segurança depende também da versão da linguagem. Ao contratar desenvolvimento ou sustentação, vale perguntar como o fornecedor armazena senhas, que bibliotecas de criptografia usa, qual versão do PHP será adotada e qual o plano de atualização ao longo do contrato. Um teste de segurança periódico, feito por empresa especializada, ajuda a confirmar que essas escolhas continuam adequadas.
Fontes
Compare nota, avaliações verificadas e score, e fale direto com a empresa pela Citeo.
Perguntas frequentes
Quando foi lançado o PHP 7.2?
O PHP 7.2.0 foi lançado em 30 de novembro de 2017, segundo o arquivo de notícias do site oficial do PHP. Foi a segunda atualização de recursos da série 7.
Por que o mcrypt foi removido do PHP 7.2?
O anúncio oficial listou a remoção da extensão mcrypt entre as mudanças da versão, ao mesmo tempo em que incluiu a nova extensão sodium, baseada na libsodium. Na prática, aplicações que usavam mcrypt precisaram migrar para outra solução de criptografia antes de atualizar.
Quando o PHP 5.6 deixou de receber correções regulares?
Segundo o anúncio da versão 5.6.30, de 19 de janeiro de 2017, ela foi a última planejada com correções regulares de bugs. A partir daí, o ramo 5.6 passaria a receber apenas correções de segurança por dois anos.