logo
Conheça nosso trabalho agora mesmo.
Curta nossa página no facebook
contato@mitsistemas.com.br

Blinde sua aplicação web PHP com essas dicas de segurança

m

Desenvolver uma aplicação web não é uma das tarefas mais fáceis do mundo. Embora cada vez mais ferramentas e linguagens de programação prometam facilitar todo o trabalho, sempre haverá uma questão que jamais será resolvida sem alguma expertise da parte do desenvolvedor: a segurança.  Além de garantir a segurança dos usuários e das transações, um sistema web seguro também deve garantir a integridade do servidor que o hospeda. Por esse motivo, os profissionais da área devem estar sempre preparados e bem informados sobre as principais ameaças e as técnicas que ajudam a evitá-las. E, pode apostar, essa não é uma tarefa tão simples quanto parece: há uma infinidade de procedimentos que podem ser adotados para evitar uma infinidade maior ainda de acessos ou uso indevido de dados e recursos.  Pensando nisso, separamos algumas dicas que podem ajudá-lo a garantir a segurança do seu sistema desenvolvido em PHP. Confira-a:

1. Sempre use nomes de cookies de sessão diferentes

Para evitar que ocorra os chamados roubos de sessão, é sempre bom definir nomes diferentes para os cookies de sessão. Por exemplo, o nome padrão utilizado pelo PHP para guardar ids de sessão é “PHPSESSID”. Logo, mudar esse nome dificultará a ação de qualquer cracker que queira se aproveitar da sua aplicação.  Outra dica interessante é usar nomes diferentes para cada acesso e vinculá-lo a algo do acesso do visitante.

2. Só acesse cookies de sessão via HTTP

Embora os ids de sessão sejam armazenados em cookies por padrão no PHP, o atributo session.cookie_httponly não vem como padrão. Ativando-o você garante que os cookies de sessão só poderão sre acessados via HTTP, impedindo que scripts JavaScript, por exemplo, sejam barrados ao tentar fazer o mesmo. Essa á uma ótima dica para evitar principalmente ataques XSS.  Para mudar a configuração, vá até o arquivo php.ini do PHP, procure pelo atributo session.cookie_httponly e defina seu valor como 1.

3. Valide a origem da sessão em todas as páginas

Garanta que o usuário que se autenticou no sistema é o mesmo que está acessando a página atual validando o User Agent e o IP do dono da sessão em todas as páginas.

4. Evite Spoofing de formulário

O Spoofing de formulário ocorre quando uma postagem é feita em um dos formulários do seu site de um local inesperado e/ou desconhecido. Neste caso, uma técnica que pode ajudar a evitar esse tipo de ataque é a utilização de um token. Nele, você pode guardar uma chave na sessão no momento em que o formulário é exibido e, quando os dados forem postados, utilizá-la para comparar se a chave enviada é a mesma gravada na sessão anteriormente.  Vale lembrar, no entanto, que essa dica deve ser implantada em formulário mais simples – para casos mais complexos, a alternativa mais efetiva contra robôs continua sendo o uso do Captcha.

5. Valide os arquivos enviados ao servidor

É cada vez mais raro encontrarmos sistemas que não oferecem a possibilidade de enviarmos algum arquivo para armazená-lo no servidor. Se o seu utiliza esse recurso, então nunca esqueça de validar os uploads antes de salvar os arquivos no servidor. Dessa forma você evita que arquivos maliciosos sejam armazenados e causem algum dano ao seu servidor e sistema.  Vale ressaltar, no entanto, que validar apenas a extensão do arquivo já não é mais suficiente, pois ela pode ser manipulada no momento do envio. Para uma solução completa, é preciso verificar o cabeçalho do arquivo.

6. Impeça que suas pastas sejam acessadas via HTTP

No PHP, inúmeras configurações ficam armazenadas em arquivos com extensões ini, XML, JSON, txt e outras. O pior de tudo é que o conteúdo desses arquivos é visível quando acessados pelo navegador, o que acaba sendo um problema se ali contiver informações confidenciais.  Para evitar esse problema, a melhor alternativa é proteger as pastas que contêm esses arquivos contra acessos externos. Para isso, basta colocar esses arquivos fora da pasta public_html ou adicionar um arquivo .htaccess com as seguintes configurações nas pastas que se deseja proteger:

<Files **>
order allow, deny
deny from all
</Files>

7. Tenha cuidado com as permissões em pastas

Sempre tenha um pé atrás e restrinja o acesso às pastas do servidor. Adicione regras de execução e escrita somente em pastas aproriadas.

8. Tenha um plano em caso de comprometimento do sistema

Sempre somos levados a pensar que o pior não acontecerá conosco. Contudo, como o seguro morreu de velho, é sempre bom ter um plano de ação para o caso de você descobrir que seu sistema foi comprometido.  Uma boa dica é desabilitar as contas para que uma investigação seja conduzida a fim de descobrir a falha explorada pelos crackers. Depois disso, defina uma estratégia de reativação das contas utilizando e-mails.

9. Fique sempre de olho no seu sistema

Utilize programas de identificação de vulnerabilidades. Além de identificar os pontos fracos da sua aplicação, esses sistemas oferecem informações sobre elas e ainda podem lhe orientar sobre como resolvê-las.

Translate »