Artigo no estilo: Curso

Por que eu devo ler este artigo:Neste artigo vamos criar um sistema de exemplo totalmente aderente às melhores práticas de projeto, implementação e testes de sistemas web também pela ótica da segurança recomendados por dois órgãos muito influentes no que tange à segurança de aplicações Web: OWASP e NIST.

Vamos também criar um site fictício para testes utilizando certificados gerados pelo OpenSSL e como mesmo criar certificados para assinar nossos assemblies e com isso poder registrar as versões estáveis na GAC.

Com relação aos Testes Unitários, vamos gerar testes de todos os módulos e frameworks pertencentes ao Projeto. Vamos utilizar o TDD como principal forma de trabalho, assim como controlaremos nossa tarefa via Kanban mostrando ao nosso leitor como controlar o cronograma do artigo através das metodologias ágeis.

Não podemos imaginar um site hoje em dia sem segurança e podemos começar diminuindo os riscos de invasão em um site criptografando todos os seus dados sensíveis já desde a interação dos usuários, para isso, utilizamos os certificados SSL.

Qualquer site sério de compras ou que se preocupe com a garantia dos dados de seus usuários necessita utilizar ao menos um certificado, posto que nem todo o site tem a necessidade de ter seus dados criptografados.

Por exemplo, podemos apenas colocar o site seguro no momento do login do usuário e o acompanhar em toda a sua navegação pelo site saindo da parte segura após o seu logoff da aplicação.

Normalmente, pode-se adquirir um certificado de autoridades certificadoras conhecidas mundialmente e o valor não é muito alto, porém, ao longo do tempo e da complexidade do projeto, este valor pode aumentar e mesmo assim, é um valor irrisório em comparação ao prejuízo que a sua falta acarreta nas partes mais sensíveis de seu Sistema.

Vamos criar uma Autoridade Certificadora, gerar um Certificado Mestre, assinar este certificado, registrar o certificado no Windows e configurar o IIS para tal.

Para tal, vamos precisar do Visual Studio 2010 ou superior, do IIS 7.0 ou superior. Vamos também utilizar o OpenSSL e outras ferramentas que demonstraremos a seguir existentes no próprio .NET Framework.

Criando um domínio fake para simular um site do mundo real

O nosso site se responderá no endereço fictício http://www.projetoowasp01.com.br. Para que este domínio possa responder, vamos atrelá-lo ao IP de nossa estação de trabalho e para isto, devemos editar o arquivo Hosts.

O arquivo Hosts é como, à grosso modo, um arquivo de resolução de nomes – DNS - embarcado no próprio Windows - c:\windows\system32\etc\drivers\Hosts. Dentro deste arquivo replique o que está na Listagem 1. Caso o arquivo Hosts não exista, este deve ser criado. Uma dica muito importante é que este arquivo, assim como foi editado facilmente pelo leitor, também pode ser acessado por aplicações espiãs ou vírus. Diante disto, devemos mantê-lo como Somente Leitura após as alterações.

Listagem 1. Configuração de Host Fake no IIS


  192.168.0.3 www.projetoowasp01.com.br #Servidor IIS Fake

No caso de nossa máquina de testes, que é uma máquina virtual, colocamos o IP da máquina servidora, que é a máquina hospedeira desta máquina virtual, porém, no caso do leitor não ter a mesma estrutura, pode-se substituir o IP 192.168.0.3 para 127.0.0.1 ou o IP de sua estação de trabalho sem quaisquer ônus. Após isso, salve e feche o arquivo.

Vamos testar se nosso domínio fake responde, para isso vamos abrir o prompt do DOS e digitar o mesmo descrito na Listagem 2.

Listagem 2. Testando o domínio Fake


  cd   ping www.projetoowasp01.com.br

Se tudo der certo com o que foi digitado na listagem anterior, então teremos a saída mostrada na Listagem 3.

Listagem 3. Resposta do ping para o domínio fake


  Disparando contra www.projetoowasp01.com.br [192.168.0.3] com 32 bytes de dados:
   
  Resposta de 192.168.0.3: bytes=32 tempo=2ms TTL=128
  Resposta de 192.168.0.3: bytes=32 tempo=1ms TTL=128
  Resposta de 192.168.0.3: bytes=32 tempo=2ms TTL=128
  Resposta de 192.168.0.3: bytes=32 tempo=1ms TTL=128
   
  Estatísticas do Ping para 192.168.0.3:
  Pacotes: Enviados = 4, Recebido ... 

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora