Segurança em aplicações Web
Rodrigo FerreiraIntrodução
Segurança é um tema muito importante. Construir uma aplicação Web segura é uma tarefa bem difícil hoje em dia, pois existem diversos tipos de ataques que podem ser realizados contra ela, sendo que novas vulnerabilidades e ataques vão surgindo com o passar do tempo.
Muitos ataques estão relacionados com vulnerabilidades presentes na infraestrutura da aplicação. É bem comum encontrarmos nosso ambiente de produção com softwares desatualizados, como por exemplo, o Sistema Operacional, o SGBD e o Servidor de Aplicações. Mas uma grande parte dos ataques ocorre por conta de vulnerabilidades presentes na própria aplicação, sendo responsabilidade dos desenvolvedores e arquitetos conhecer tais fraquezas e como fazer para evitá-las.
Neste livro, vou focar nos ataques relacionados com vulnerabilidades presentes na própria aplicação. Vou explicar de maneira detalhada como funcionam os ataques, como verificar se sua aplicação está vulnerável a eles, e como fazer para corrigir tais inseguranças. Falarei de ataques como: SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Session Hijacking, dentre outros.
Em cada capítulo, focarei em um tipo de ataque, explicando como funciona e exemplificando com códigos. Você verá como fazer para testar se sua aplicação está vulnerável a ele, e mostrarei como corrigir tal vulnerabilidade.
Público-alvo
O livro é indicado para desenvolvedores Web, independente da linguagem de programação utilizada, que tenham conhecimentos básicos em Banco de Dados, protocolo HTTP e nas linguagens SQL, HTML e JavaScript.
No livro, usarei a linguagem Java, e eventualmente a linguagem PHP, para exemplificar as técnicas. Mas, conforme dito anteriormente, as técnicas e práticas que vou apresentar são independentes da linguagem de programação que você usa, então tentarei sempre citar as principais bibliotecas e frameworks que podem ser utilizados em outras linguagens de programação para a mesma situação.
Sumário
- 1 O velho e conhecido SQL Injection
- 1.1 A vulnerabilidade
- 1.2 Como funciona o SQL Injection?
- 1.3 Como proteger uma aplicação contra esse ataque?
- 1.4 Conclusão
- 2 Cross-Site Scripting is my hero!
- 2.1 A vulnerabilidade
- 2.2 Como funciona o XSS?
- 2.3 Como proteger uma aplicação contra esse ataque?
- 2.4 Conclusão
- 3 Cross-Site Request Forgery
- 3.1 A vulnerabilidade
- 3.2 Como funciona o CSRF?
- 3.3 Como proteger uma aplicação contra esse ataque?
- 3.4 Conclusão
- 4 Mass Assignment Attack
- 4.1 A vulnerabilidade
- 4.2 Como funciona o Mass Assignment Attack?
- 4.3 Como proteger uma aplicação contra esse ataque?
- 4.4 Conclusão
- 5 Session Hijacking
- 5.1 A vulnerabilidade
- 5.2 Como funciona o Session Hijacking?
- 5.3 Como proteger uma aplicação contra esse ataque?
- 5.4 Conclusão
- 6 Exposição de dados sensíveis
- 6.1 A vulnerabilidade
- 6.2 Como funciona essa vulnerabilidade?
- 6.3 Como proteger uma aplicação contra essa vulnerabilidade?
- 6.4 Conclusão
- 7 Redirects não validados
- 7.1 A vulnerabilidade
- 7.2 Como funciona essa vulnerabilidade?
- 7.3 Como proteger uma aplicação contra essa vulnerabilidade?
- 7.4 Conclusão
- 8 Outras vulnerabilidades
- 8.1 Senhas armazenadas em plain text
- 8.2 Aplicação utilizando usuário root do banco de dados
- 8.3 Configurações default de ferramentas utilizadas
- 8.4 Utilização de componentes vulneráveis
- 9 Content Security Policy
- 9.1 XSS de novo...
- 9.2 Hackers ajudando na segurança de aplicações
- 9.3 Mitigando ataques de XSS com a CSP
- 9.4 Utilizando a CSP em uma aplicação Web
- 9.5 Testando o funcionamento da CSP
- 9.6 Suporte da CSP nos navegadores
- 9.7 Conclusão
- 10 Subresource Integrity
- 10.1 Content Delivery Network (CDN)
- 10.2 Os riscos de se utilizar uma CDN
- 10.3 Como funciona o Subresource Integrity?
- 10.4 Utilizando e testando a Subresource Integrity
- 10.5 Suporte da Subresource Integrity nos navegadores
- 10.6 Conclusão
- 11 Conclusão
- 11.1 Continuando os estudos
Dados do produto
- Número de páginas:
- 156
- ISBN:
- 978-85-5519-249-4
- Data publicação:
- 02/2017