GTS Network

 

Colunas


TECNOLOGIA

Crie aplicações seguras
Nivaldo Foresti


Nivaldo Foresti dá dicas de como desenvolver um código seguro em aplicações web


Artigo publicado originalmente na coluna (Você++) no site IDG Now! (www.idgnow.com.br).


Na última coluna falei sobre o desenvolvimento de aplicações web seguras. Recebi vários e-mails pedindo dicas práticas sobre como desenvolver um código seguro.Claro, que a educação e a vigilância continuada são as melhores maneiras de prevenir problemas e escrever códigos seguros é apenas um dos vários componentes necessários.

Aqui vão algumas dicas práticas para ajudar tentar afastar os crackers de seu programa: 

Filtre e valide os dados de entrada

Os programadores só devem confiar naquilo que controlam. Assim, todos os dados digitados são potenciais problemas de segurança e você deve validá-los em sua aplicação. Por exemplo, nunca assuma que dados digitados em um formulário são o que deveriam ser. Um endereço deve conter um símbolo como < ? Tais símbolos indicam um possível ataque.

Aplique todas as medidas de segurança

Usar uma conta anônima de Web Server durante o desenvolvimento para economizar tempo, mesmo quando cada usuário final deve ser autenticar na aplicação em produção, pode ser um fator que esconda bugs que serão descobertos dias antes do sistema entrar no ar.
Descobrir bugs no último minuto significa atraso ou aplicações vulneráveis em produção. Inclua todos o elementos da aplicação final em seu desenvolvimento.

Não use contas de administrador

Sempre que possível não use contas de administrador ou superuser na aplicação. Com elas, você pode facilitar eventuais acessos ao sistema sob a aplicação com a quebra do seu código.

Não use GET para enviar dados sensíveis ao servidor

Essas requisições são registradas como texto pelos servidores Web, assim qualquer um que consiga acesso ao servidor poderá ler seu conteúdo. SSL e encriptação não resolverão esse problema, pois quem ganhar acesso ao sistema poderá ler o log do sistema em texto. Além disso, a requisição pode ser guardada no arquivo de histórico do navegador.

Use o POST para enviar dados ao servidor

Ele usa o corpo do HTTP para enviar informações, assim o servidor web não registra em seu log. Mas, use SSL para enviar as requisições com dados sensíveis, pois o POST envia seus dados em texto puro.

Cuidado com senhas em JSP e ASP

Java Server Pages (JSP) e Active Server Pages (ASP) freqüentemente têm senhas dentro do código para acesso a bancos de dados, diretórios etc. Isso é um erro. Um bug do IIS mostra o código fonte ASP quando um comando ::$DATA é colocado no fim da URL.

Nunca comente o código HTML

Nunca comente mensagens de erro com informações relevantes de segurança, como conexões, senhas etc. Esse é o tipo de coisa que pode dar munição para os hackers. As mensagens podem transportar informações sobre caminhos de diretórios no servidor ou sobre bancos de dados ou mesmo sobre a aplicação.

Use o encoding do HTML

Cross-site scripting é uma vulnerabilidade difícil de se defender. O consenso atual é para usar o enconding do HTML. Para prevenir ataques como explicados neste link:
http://www.infoworld.com/articles/tc/xml/01/04/09/010409tcwebsec.html) os dados digitados devem ser encodados.

Além das dicas, é importante colocar a mão na massa, com planejamento e procedimentos. Boa sorte!

Nivaldo Foresti é programador há 30 anos, desde a jurássica era do mainframe. Foi consultor e desenvolvedor de produtos na internet como o BOL (Brasil Online) e hoje tem uma empresa de webcasting, com software nacional. Neste espaço, o colunista revela o que os desenvolvedores podem esperar da profissão, além de analisar as novas eras tecnológicas que se aproximam. E-mail: nforesti@yahoo.com


Ver perfil deste colunista | Listar todas as colunas deste colunista