Olá pessoas, tudo bem com vocês? Pokemaobr aqui novamente para esse blog maraviwonderful que é o blog da Locaweb e trazendo mais um conteúdo muito importante para você que desenvolve websites. Um tema temido por muitas pessoas e estudado por tantas outras. Vamos falar sobre a segurança do seu site.
É muito importante para nós como devs divulgar nossos trabalhos para o maior número de pessoas. Ter bastante visita é algo muito bom quando falamos da questão de ter sucesso em um site. Mas, quanto mais visitado é um site, mais visado por pessoas sem as melhores intenções, que procurarão por pequenas brechas para descobrir algumas informações indevidas ou até mesmo explorar alguma funcionalidade que deveria ser exclusiva para certos tipos de usuários.
Durante esse artigo você vai perceber que as maiores falhas de segurança são as mais comuns. Então, para começarmos a nos preocupar com a segurança do seu site, comecemos do princípio:
1) Atualize tudo que puder
Quanto mais o mundo de desenvolvimento evolui, mais utilizamos plataformas abertas, utilizadas por muitas pessoas, porém, exploradas por outras também. Por isso de começo a melhor dica para reforçar a segurança de qualquer aplicação é: mantenha tudo que você puder o mais atualizado possível, de preferência na última versão estável.
Muitas brechas de segurança são encontradas e atualizadas muito rápido pelas pessoas que desenvolvem, manter servidores, versões de linguagens, ferramentas, frameworks e plug-ins desatualizados atrapalha muito a manutenção de segurança de sua aplicação.
Juntamente com isso, reestude sempre as boas práticas da sua linguagem e bibliotecas em geral e veja se alguma função, pacote ou outra funcionalidade mais nova corrige alguns processos de segurança de versões passadas.
Para garantir que a navegação no seu site seja segura, tenha um Certificado SSL!
SAIBA COMO2) Entenda um pouco das configurações de segurança do seu servidor
Outras práticas interessantes para a gente começar a entrar um pouco mais na segurança são as configurações de servidores. Por muitas vezes pegamos apenas uma configuração padrão e colocamos nosso site no ar com aquilo. É muito importante entendermos quais diretrizes são importantes para ajustar e liberar ou não acessos para a aplicação.
É interessante entender também quais portas precisam realmente estar abertas para nosso site funcionar corretamente e quais podem estar fechadas diminuindo assim a exposição das coisas.
Juntamente com isso, as permissões de pastas e arquivos devem ser sempre revisitadas para que apenas os usuários corretos do sistema possam acessá-las. Bem como não permitir que uma pessoa acesse arquivos que não são das extensões que sua linguagem utiliza.
Por exemplo, não faz sentido você permitir que seu servidor fornecesse acesso a qualquer pessoa para arquivos .txt se seu site é em PHP, provavelmente um arquivo .txt terá informações de logs ou outros dados que não interessam a uma pessoa usuária comum.
3) Guarde bem as suas senhas
Quando falamos de armazenamento de senhas dentro de um website o negócio fica um pouco mais tenso. Muitas pessoas falam que simplesmente usar hashs para “encodar” as senhas e salvar no banco, já que os hashs não são reversíveis, ou seja, não é possível utilizar um algoritmo para retornar o valor para o inicial.
Mas, por exemplo, um algoritmo de hash muito utilizado para isso é o MD5, e, embora realmente caso você pegue por exemplo 1q2w3e e transforme em MD5, o que seria 3fde6bb0541387e4ebdadf7c2ff31123, não existe um comando para que o resultado disso volte o 3fde6bb0541387e4ebdadf7c2ff31123 para 1q2w3e, porém, como sempre o MD5 gera a mesma string 3fde6bb0541387e4ebdadf7c2ff31123 quando codificado.
Existe o que chamamos de tabela de hash, onde você pode, sabendo qual é o MD5 gerado procurar pelo valor inicial. Portanto utilize algoritmos mais modernos e confiáveis (de preferência aqueles que utilizam o conceito de salt) como SHA256, BCRYPT e ARGON2
4) Fique de olho no SQL Injection
Embora esse seja um tema que sempre é falado quando é o de SQL Injection, não tem como não falar sobre isso. O SQL Injection consiste em um ataque onde uma pessoa utiliza os formulários de um site ou algum endpoint que esteja de fácil acesso e tenta executar um comando SQL malicioso. Por exemplo:
No exemplo acima a utilização correta dos campos User e Senha deveria ser da pessoa digitar um nome de usuário no primeiro input e a senha desse usuário no segundo input. Porém, caso o site execute o sql de busca de usuários diretamente apenas substituindo os valores no código, uma pessoa má intencionada poderia colocar um código malicioso nos campos para que o SQL executado retorne todos os dados de usuários por exemplo.
Como fazer para resolver SQL injection? Nunca executar um comando SQL diretamente dos dados que usuários enviam para o seu site. Sempre utilize filtros para validar se os dados inseridos são os dados realmente solicitados em seus formulários. E não apenas substitua tudo que vem do site para o seu banco de dados.
5) Conheça o OWASP
Fora essas dicas, um site que indico muito quando o assunto é segurança de aplicações, principalmente para a web é o OWASP TOP TEN. A OWASP é uma organização internacional que trabalha com foco em segurança de aplicações e as muitas brechas que deixamos quando desenvolvemos. O legal é que existem alguns grupos dentro da OWASP que realizam eventos e outras atividades também, incluindo no Brasil.
O OWASP TOP TEN trata das 10 vulnerabilidades mais comuns nos sistemas web, e a cada ano fazem um novo estudo e atualizam. O mais interessante é que durante os vários anos que essa lista está sendo desenvolvida as vulnerabilidades mais comuns dificilmente mudam.
Desejo que tenham curtido o artigo de hoje, valeu mesmo por acompanhar aqui o blog.
Até a próxima!