Então PHP é seguro? Em uma palavra: sim. A má reputação do PHP é mal merecida, mal interpretada e deve-se a três fatores:
- Foi: Há mais de uma década, existia sim, um argumento que poderia se dizer que PHP era inseguro. Uma diretiva do PHP chamada register_globals(), que permitia criar variáveis e acessar variáveis globais do PHP, isso poderia ser feito por parâmetro[1]. Por padrão isso vinha como ON, mas em 2000, na versão 4.2.0 por padrão começou a vir OFF, virou obsoleto a partir da 5.3.0 e será removido na 6.0.0. Creio que 90% da má fama do PHP seja por causa da register_globals(). Como foi removido, fim da história.
- É onipresente: Podemos ver o tráfego que sites como Facebook, Wikipedia e da Casa Branca geram na Web, e a princípio foram desenvolvidos em PHP. E como são sites importantes e com bom tráfego, consequentemente recebem muitos ataques, podendo perceber que PHP não é tão inseguro quanto falam.
- É perdoável: PHP é uma linguagem de programação muito tolerante, o que significa que sua curva de aprendizagem é fácil e rápido, é uma das linguagem web mais escolhida por programadores iniciantes. Naturalmente, programadores inexperientes vão escrever códigos inexperientes, e código mal escrito, torna-se inseguro. Mas podemos dizer que é inseguro? Não. Código mal escrito em qualquer linguagem de programação torna-se inseguro. É um jogo de números.
Não podemos dizer que linguagem X é mais seguro que linguagem Y, ou que é inseguro. Seria como falar que a língua inglesa é a pior. Não faz sentido algum. Pesquisas dizem que a maioria apóia a ideia de códigos open-source é o oposto do caso, produzem código de melhor qualidade do que de códigos abertos [2][3].
Códigos open-source, não só PHP, são mais monitorados o que códigos fechados, isso é fato. Se alguma vulnerabilidade surge, é muitas vezes consertadas em horas [4] e logo é publicada a correção. Em algumas aplicações comerciais ou de código fechcado, pode demorar dias, meses para alguma correção seja lançada [5].
Outro fato que já ouvi falar, algumas empresas não optam trabalhar com PHP pois o script não é “compilado”, fica aberto para qualquer um. Por trás disso também envolve outras coisas, como a visibilidade e permissões dos arquivos e pastas no servidor, e também existem ferramentas para “criptografar” [6] o código, deixando mais seguro.
Se existe código inseguro em PHP? Sem dúvida. Mas isso significa que podemos dizer que PHP é inseguro? Jamais. O que eu gostaria nesse artigo é desmistificar o porque desse má fama do PHP ser inseguro. Acho que todas linguagens tem seus pontos fortes e fracos, e cada projeto é melhor em alguma linguagem. Acho que não devemos nos apegar a apenas alguma linguagem e dizer que ela é melhor em tudo e usar ela para todos os projetos. Devemos abrir os olhos e também estudar novas linguagens e assim poderemos criticar quais são seus pontos fortes e fracos.
Até
Notas:
- http://php.net/manual/pt_BR/security.globals.php
- https://www.infoworld.com/d/open-source-software/report-open-source-tops-proprietary-code-in-quality-187169
- http://www.commlawblog.com/2010/01/articles/unlicensed-operations-and-emer/fcc-changes-stance-on-opensource-security/
- https://twitter.com/#!/nacin/status/9753986051604480
- http://www.xconomy.com/boston/2008/03/07/delays-in-software-patch-pushed-security-firm-to-disclose-vmware-flaw/
- http://www.zend.com/en/products/guard/
Este artigo for traduzido e adaptado de Benjamin Balter. (Artigo original) – Créditos a Benjamin Balter.

Pingback: PHP News 7ª Ed | PHPMS