PHP é inseguro?

PHP é inseguro?

2 de abril de 2012 0 comentários

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:

  1. 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.
  2. É 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.
  3. É 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:

  1. http://php.net/manual/pt_BR/security.globals.php
  2. https://www.infoworld.com/d/open-source-software/report-open-source-tops-proprietary-code-in-quality-187169
  3. http://www.commlawblog.com/2010/01/articles/unlicensed-operations-and-emer/fcc-changes-stance-on-opensource-security/
  4. https://twitter.com/#!/nacin/status/9753986051604480
  5. http://www.xconomy.com/boston/2008/03/07/delays-in-software-patch-pushed-security-firm-to-disclose-vmware-flaw/
  6. http://www.zend.com/en/products/guard/

Este artigo for traduzido e adaptado de Benjamin Balter. (Artigo original) – Créditos a Benjamin Balter.