4 pontos de atenção para manter a segurança em PHP

Uma das linguagens mais populares na web pode, também, ser fonte de problemas em segurança. Veja como evitar isso e garantir o melhor dos mundos em seu código

Alguns dizem que o PHP está obsoleto; eu, por outro lado, digo que essa linguagem presente desde 1995 está longe de nos deixar. Segundo estatísticas do W3 Techs, que é atualizado diariamente, no dia 4 de novembro de 2021, o PHP era usado por 78,4% de todos os sites em que a linguagem de programação server-side é conhecida.

Usage Statistics and Market Share of PHP for Websites, November 2021 (w3techs.com)

Então quando falamos de uma linguagem presente na vasta maioria das aplicações web que utilizamos hoje em dia, por que não falar sobre melhores práticas de segurança em PHP? 

Por isso, hoje eu te trago 4 dicas para despertar sua atenção durante o desenvolvimento e garantir segurança sem abrir mão da praticidade desta linguagem extremamente popular.

 

  1. PHP ini

Começamos com o core do PHP, o local em que as principais configurações estão localizadas – php.ini Nele é possível setar algumas flags de configurações que o PHP deverá seguir durante a execução. Dentre essas flags, vale a pena destacar algumas que são particularmente importantes para melhorar a segurança da sua aplicação:

  • display_errors = off

Para não exibir os erros que aconteceram durante a execução na tela do usuário. 

  • log_errors = on

Seguindo essa linha de erros, é importante estar com essa flag habilitada, pois log é informação e informação é ouro!

  • disable_functions = string 

Pode ser uma boa desabilitar funções nativas do PHP que sua aplicação não precisa usar, por exemplo exec, shell_exec, system

  • open_basedir = string

Nesta flag deve ser informado o diretório base da aplicação para impedir que seja acessado ou executado arquivos que possam estar em outros diretórios. 

allow_url_fopen = off

Isso evita a execução de arquivos PHP remotamente.

 

  1. Inputs de usuários

Uma frase que eu gosto muito é “Nunca confie nos inputs do usuário” – e nem precisa de explicações do porquê, não é mesmo? Dependendo da forma com que implementamos nossas funções, pode ser que comandos maliciosos passem, é aí que entram dois tipos de vulnerabilidades:

 

  • SQL Injection

Para evitar a execução desse tipo de ataque, algumas funções nativas do PHP podem ser utilizadas, como por exemplo mysql_real_escape_string(), sqlite_escape_string() ou str_replace().

 

  • Cross-Site-Scripting (XSS)

Para esse ataque, o PHP também possui funções que podem auxiliar como strip_tags() ou htmlspecialchars().

 

  1. Logs

Log é informação e informação é ouro! É de extrema importância mantermos logs de  tudo que acontece no sistema, principalmente nas partes mais sensíveis, com o máximo de detalhes que pudermos. Isso garante rastreabilidade de eventos e ajuda a fazer análises de causa-raiz e a investigação de incidentes, melhorando continuamente a segurança do ambiente.

 

  1. Criptografia

Quando se trata de informações sensíveis, podemos aplicar uma segurança a mais na comunicação. Uma sugestão interessante é o uso de uma biblioteca chamada Libsodium, que pode ser utilizada para criptografar, descriptografar, hash de senhas, entre outros. E o melhor de tudo: é tão fácil de usar que você não precisa ser um expert em segurança. 

 

Gostou das dicas? Então continue acompanhando nosso blog e nossas redes para mais updates, e bom coding para você!

Escrito por Yan Pinheiro – Trend Micro

Categorias

Veja outras publicações

Menu