De que se trata o artigo

O artigo trata de como melhorar as aplicações Web quanto ao aspecto de segurança, utilizando recursos do framework .NET para a criação de sistemas que poderão ser utilizados sem sustos pelos usuários e, também, tornando a aplicação mais segura.

Em que situação o tema é útil

Este tema é útil para desenvolvedores que desejam conhecer técnicas de seguranças para o desenvolvimento de web sites e, também, como ter uma aplicação robusta e estável. As técnicas mostradas neste artigo são uteis principalmente para aplicações em ASP.NET.

Boas Práticas no ASP.NET - Aprenda a criar aplicações Web seguras

Com o crescimento da importância das aplicações Web, cresceram também os desafios para os profissionais envolvidos no ciclo de vida destas, como o desenvolvedor, arquiteto e administrador da rede.

São três aspectos que merecem uma atenção redobrada: segurança, desempenho e manutenção. Na segurança o risco maior é representado por acessos indevidos aos dados e, que podem comprometer informações sigilosas e até deixar o software fora do ar.

Usando práticas bem simples, ao longo do tempo o programador conseguirá facilmente criar projetos seguros. Se o desenvolvedor estiver utilizando o Framework .NET e ASP.NET Web Forms, ficará mais fácil ainda porque existem muitos recursos que o auxiliam neste trabalho.

O aspecto mais importante é que se tenha a consciência de que deve partir do desenvolvedor a iniciativa de criar uma aplicação segura e confiável para seu usuário.

Este artigo apresenta algumas ações para garantir segurança nos projetos Web. São apenas medidas iniciais e que poderão e deverão ser ampliadas com pesquisas e aperfeiçoamentos.

As aplicações Web estão em evidência e que cada vez mais estarão presentes, não só em aplicações aparentemente sem importância, como redes sociais e outros tipos de aplicativos para relacionamentos on-line, como também em softwares corporativos. Os bancos são os maiores consumidores deste tipo de projetos e estão entre os tipos de empresa que mais investem em pesquisas para segurança de suas aplicações.

Com este cenário, os profissionais envolvidos com aplicações para esta plataforma precisam estar atentos às demandas nas áreas de segurança, garantindo que os dados sejam mantidos longe de acessos indevidos e visualizados apenas pelas pessoas que tenham autorização. Devem assegurar que quando alguém abrir o aplicativo em seu browser tenha uma experiência agradável com o software e consiga fazer o trabalho em um tempo razoável, ainda que a infraestrutura de comunicação de dados no Brasil muitas vezes seja precária. Além disso, se a aplicação tiver boa aceitação, certamente precisará passar por manutenções, quer seja para corrigir problemas encontrados ou então, para passar por evoluções e ter novas funcionalidades agregadas no conjunto.

Entendendo exclusivamente o ponto de vista do desenvolvedor e de quem está começando a dar os primeiros passos no trabalho com projetos Web, apesar de parecer ser uma tarefa complexa (na verdade é muito complexa), é possível que em pouco tempo o profissional tenha à sua mão, um conjunto de práticas e conceitos que permitam trabalhar, sempre procurando entregar o melhor resultado nas três áreas citadas anteriormente. O caminho a ser percorrido é longo e o que é apresentado neste artigo trata-se de medidas iniciais que devem ser expandidas ao longo do tempo. Como consequência, o profissional deve sempre estar atualizando-se. Existe um vasto conteúdo para ser pesquisado, principalmente junto aos fornecedores das tecnologias usadas e também nas comunidades de desenvolvedores.

O primeiro e mais importante passo a ser dado, é agir de forma a garantir a segurança dos projetos, que é o que começaremos a ver a partir de agora.

Segurança

Uma aplicação segura precisa garantir alguns pontos, dentre os quais:

1. Somente os usuários devidamente autorizados devem poder acessar os dados.

2. Cada usuário deve ter acesso apenas aos dados que lhe são permitidos.

3. A aplicação deve prever situações de ataque, que tem por objetivo expor dados.

4. A aplicação precisa bloquear a utilização indevida da interface do software.

Para o desenvolvimento de aplicações Web seguras, a Microsoft propõe uma ilustração que pode ser conferia na Figura 1 e que mostra as diversas partes envolvidas no funcionamento destas aplicações.

Figura 1. Distribuição das responsabilidades em uma Web Application

Iniciando com a interface dos usuários, ao lado do Browser, deve-se providenciar meios de garantir que o usuário que esteja navegando, seja devidamente autenticado e identificado para que suas ações possam ser rastreadas e a partir desta identificação, o servidor possa montar o conjunto adequado de permissões que o mesmo possui e, desta forma, disponibilizar somente o que for necessário. Esta autenticação é garantida através do controle de sessão do usuário, da forma como a autenticação é feita e com os cookies. O arquivo Web.Config sempre presente nos projetos ASP.NET, possui uma seção toda dedicada a forma como a autenticação do usuário deve ser controlada pela aplicação.

Na Figura 2 está demonstrada a seção de um destes arquivos bem básicos e que lista quais os tipos de autenticação existentes.

Figura 2. Opções para autenticação do Web.Config

Provavelmente o tipo mais básico é usando um formulário ASPX, para que o usuário entre com suas credenciais (normalmente login e senha) para que sejam consultados em um banco. É isso que o modo “Forms” configura, entre outros aspectos.

Após ter passado pelo browser, o Firewall deve garantir a integridade dos dados até que cheguem ao próximo nível, que é o Web Server. Normalmente é o administrador da rede que precisa estar atento a este aspecto, mas o programador pode e deve interagir com este para saber quais as ameaças mais prováveis nesta camada e, tomar algumas medidas, como providenciar alguma segurança para os dados enquanto trafegam.

No Web Server, é onde a aplicação ASP.NET é executada de fato, o seu código é armazenado e são recebidas as requisições do usuário para o processamento. É neste ponto que os componentes ASP.NET são convertidos para elementos HTML, para que o Browser possa renderizar a interface e, os dados são preparados e validados. Posteriormente, as informações são enviadas para o banco de dados e de lá recuperadas. Também é nele onde os erros do código irão ocorrer e, se não forem devidamente tratados, serão enviados para o usuário com a temida “Yellow Screen of Death” que é a página de erro do ASP.NET, gerada por padrão (falarei sobre esta página mais à frente). Para que nesta camada haja segurança, deve-se tomar cuidado com os componentes ASP.NET usados, fazer o devido tratamento das exceptions e promover uma robusta validação dos dados, verificando overflows e tipos de dados incompatíveis.

...
Quer ler esse conteúdo completo? Tenha acesso completo