Dicas simples para aumentar a qualidade do seu software
Parte I: Segurança
Vou iniciar uma série de pequenos artigos denominados “Dicas
Simples para Aumentar a Qualidade de seu Software”. Como diz o titulo são
pequenas questões, coisas que talvez você não tenha percebido que são de fácil
adoção e que por outro lado podem trazer um grande beneficio em termos de
qualidade para seu software. Neste primeiro artigo o assunto é segurança.
Parte I: Segurança
É um fato, e ninguém duvida disso, que todo software possui
bugs. Outro fato é que nenhum software é 100% seguro. Porém o fato
"segurança" e muito mais subestimado do que o fato "bugs",
muito embora exista uma relação forte entre ambos. Tende-se a pensar que um
software nasce naturalmente seguro, principalmente se ele foi feito em um
ambiente robusto e amplamente utilizado como o ASP.NET ou Java. Muito embora
estas plataformas façam muito em termos de tornar sua aplicação mais segura,
elas não podem fazer tudo, muito menos prever quais tipos de falhas iremos
introduzir em nosso código.
Os números e as notícias mostram que milhões de aplicações
são atingidas anualmente através de falhas de segurança. Assim como você não
pode deixar seu software 100% livre de bugs, você não vai conseguir deixá-lo
100% seguro. O fato é que ações simples podem fazer uma grande diferença e,
quem sabe, evitar muitos problemas.
O SANS Institute, uma das maiores instituições de segurança
da tecnologia da informação, publicou o "SANS TOP 25 Most Dangerous Programming
Errors", ou "Os 25 mais perigosos erros de programação segundo a
SANS", numa tradução livre. Um detalhe importante da lista é o fato de
que, apenas dois destes erros, foram responsáveis por mais de 1,5 milhões de falhas
de seguranças em web sites em 2008.
A maioria dos erros que figura na lista dos 25 mais são
clássicos. Muitos, além de clássicos, podem ser prevenidos com medidas simples,
como Cross-Site Scripting (veja artigo sobre sua prevenção em ASP.NET em http://msdn.microsoft.com/en-us/library/ms998274.aspx)
e SQL Injection (veja artigo sobre sua prevenção em ASP.NET em http://msdn.microsoft.com/en-us/library/ms998271.aspx).
Ainda em ASP.NET, outros bons recursos para se aprofundar
mais no assunto é o artigo "Building Secure ASP.NET Applications:
Authentication, Authorization, and Secure Communication" em
http://msdn.microsoft.com/en-us/library/aa302415.aspx e "An Introductory
Guide to Building and Deploying More Secure Sites with ASP.NET and IIS" em
http://msdn.microsoft.com/en-us/magazine/cc301387.aspx. Outra boa referencia é
o livro "Professional ASP.NET 3.5 Security, Membership, and Role
Management with C# and VB"*
*Haidar,
Bilal, and Stefan Schackow. Professional ASP.NET 3.5 Security, Membership, and
Role Management with C# and VB. Wrox Press. © 2009. Books24x7.