O que é cibersegurança?
Cibersegurança é o trabalho de manter sistemas digitais confiáveis quando pessoas, softwares e redes fazem coisas que você não esperava.
Essa definição é proposital ampla. Ela pode incluir fraude bancária, malware, phishing, infraestrutura em nuvem, defesa de redes, privacidade, resposta a incidentes e uma dezena de outras especialidades. Este manual não tenta cobrir tudo isso.
Este manual é sobre segurança de aplicações para desenvolvedores: a segurança do código que você escreve, revisa e coloca em produção.
Isso já é suficiente para começar. Você não precisa aprender todas as funções de segurança de uma vez só.
Isso significa que nos importamos com perguntas como estas:
- O que acontece se um usuário altera um campo oculto de formulário antes de enviá-lo?
- Um cliente pode ler o pedido de outro cliente?
- O que acontece se um token de login vazar?
- Uma rota pode ser chamada milhares de vezes até o aplicativo ficar lento?
- O servidor verifica os dados, ou ele só confia no navegador?
Por que essas perguntas?
Elas estão dentro do código-base, da API, da consulta ao banco de dados, do cookie de sessão e do schema de validação. Essa é a parte da cibersegurança do tamanho de um desenvolvedor que este manual ensina.
Como chegamos até aqui
A palavra é mais nova que o problema. Os computadores começaram como máquinas compartilhadas em laboratórios, depois foram para escritórios, casas, celulares e sistemas de pagamento. Quando o software passou a carregar dinheiro, identidade e registros privados, quebrar o software deixou de ser uma brincadeira e virou uma forma de roubar, espionar, atrapalhar ou se passar por outra pessoa.
A web intensificou essa mudança. Um navegador é uma porta de entrada amigável, mas ele envia texto que seu servidor precisa interpretar: URLs, headers, cookies, formulários, corpos JSON, uploads de arquivos.
Cada requisição é uma pequena história que o navegador conta ao seu servidor, e o servidor precisa decidir o quanto acreditar nela.
Por que desenvolvedores precisam disso
Os primeiros sites eram basicamente documentos. Você visitava uma página, lia, clicava em um link e seguia em frente. As aplicações web modernas são diferentes. Elas recebem pagamentos, armazenam dados pessoais, gerenciam identidade, chamam APIs, fazem upload de arquivos e tomam decisões em nome dos usuários.
Uma funcionalidade normal pode virar um bug de segurança quando confia na coisa errada. Uma caixa de busca pode virar um ponto de injeção. Uma página de perfil pode vazar os dados de outra pessoa. Um botão útil de exportação pode virar um problema de negação de serviço se uma única requisição pedir ao banco de dados uma quantidade excessiva de trabalho.
A boa notícia é que a maior parte disso pode ser aprendida. Você não precisa virar criptógrafo nem engenheiro de redes para escrever código de backend mais seguro. Você precisa de alguns hábitos:
- Perceber onde a entrada de dados chega ao sistema.
- Verificar decisões no servidor.
- Tratar identidade e permissões como perguntas separadas.
- Pensar no que pode dar errado antes de a funcionalidade ir para produção.
- Conhecer as classes comuns de bugs o suficiente para reconhecê-las.
Esse é o caminho que este manual segue.
O servidor precisa se perguntar: "Eu sei disso por conta própria?" Essa única pergunta carrega boa parte do curso.
O caminho a partir daqui
O caminho começa com uma ideia simples: código seguro começa em como pensamos.
É por isso que a primeira seção começa com STRIDE e OWASP. O STRIDE ajuda você a perguntar o que pode dar errado enquanto uma aplicação ainda está sendo projetada. O OWASP dá nomes aos bugs que aparecem quando aplicações reais já estão rodando no mundo.
Primeiro construímos a mentalidade, depois passamos para o trabalho concreto do desenvolvedor: entrada de dados insegura, XSS, injeção SQL, validação, autenticação, tokens, OAuth, limitação de taxa e throttling.
Depois disso, os capítulos transformam essas perguntas em código.
Isso não é um levantamento completo de cibersegurança. Não estamos cobrindo análise de malware, ferramentas de teste de invasão, defesa de redes, frameworks de compliance ou operações de segurança.
Esses temas importam. Eles ficam fora do trabalho que este manual se propõe a fazer.
O trabalho aqui é mais restrito e mais prático: ajudar você a construir aplicações de backend mais difíceis de usar de forma indevida, mais fáceis de entender e mais seguras para colocar diante de usuários reais.
Isso significa rotas, schemas, cookies, tokens, consultas e middleware. Muita coisa para aprender, sem fingir que um único manual consegue ensinar todos os campos da segurança.
Para onde isso vai a partir daqui
A palavra foi restringida: segurança de aplicações, o código que você escreve, revisa e coloca em produção. O escopo está definido, e as perguntas que valem a pena fazer estão sobre a mesa.
O que falta é o hábito de fazê-las. Como pensar sobre segurança é onde isso começa, com fronteiras de confiança e o reflexo de olhar para o seu próprio código do jeito que alguém mal-intencionado olharia.

