Cada vez mais é possível desenvolver softwares e aplicações com menos conhecimento técnico. Inúmeras linguagens de programação, ferramentas, assistentes, kit de montagem, etc. surgem oferecendo facilidades para que qualquer usuário consiga montar aplicações.
Linguagens de quarta geração abstraem detalhes do funcionamento do sistema operacional facilitando a vida dos programadores e tornando o trabalho muito mais produtivo. Assistentes de várias ferramentas produzem telas e formulários simples praticamente com alguns cliques do mouse. Sem falar em diversos portais que oferecem recursos para montar novos sites dinâmicos sem que o usuário precise conhecer a linguagem ou tecnologia utilizada.
Sem dúvida é uma grande vantagem sob o ponto de vista de produtividade e de padrozinação das aplicações.
Porém a questão preocupante é a seguinte: Com estas facilidades, a aplicação desenvolvida fica mais ou menos segura ?
Acredito que para esta questão vale o velho ditado "o barato sai caro".
Inúmeras técnicas de ataques a aplicação se aproveitam da ingenuidade e do descuido do processo de desenvolvimento de software. E sem a consciência de como as coisas funcionam internamente a possilidade de deixar brechas na aplicação aumentam.
Por outro lado, e se o "gerador" de aplicações tiver um sério comprometimento com a segurança, gerando consistências seguras, utilizando criptografia, métodos seguros, etc ? Dificilmente o nível de segurança será elevado de forma eficaz sem que ocorra a perda de flexibilidade e produtividade.
Acredito que a melhor solução para a questão "usar linguagens de baixo nível difíceis e improdutivas ou usar linguagens de alto nível (e geradores de aplicações) produtivas e fatalmente inseguras" é a que responde vários aspectos referentes a seguraça: a melhor solução depende da necessidade de segurança definida pelos requisitos do negócio.
Autor: Ricardo Kiyoshi
|