O documento discute implementações seguras de APIs REST, cobrindo tópicos como injeção de SQL, acesso indevido a informações e criptografia. Ele fornece exemplos de como evitar problemas de segurança comuns e recomenda estratégias como uso de JWT, armazenamento seguro de credenciais e habilitação do HTTPS.
4. Globalcode – Open4education
APIs REST – Questões Fundamentais
Escalabilidade, disponibilidade e performance
REST como um dos principais estilos
arquiteturais
Economia das APIs
A onipresença da nuvem
5. Globalcode – Open4education
APIs REST – Contexto Atual
Modelagem
Cultura de automação
Estratégias de deployment
Monitoramento
Segurança
7. Globalcode – Open4education
Desenvolvedores e a Questão da Segurança
Nunca vai acontecer comigo
A aplicação é pequena, não há muitos
usuários
O pessoal de TI é confiável
Nossos usuários são leigos demais
8. Globalcode – Open4education
E se essas “verdades” falharem?
Injeção de SQL (SQL Injection)
Acesso em produção com permissões
especiais
Acesso indevido a informações
confidenciais
9. Globalcode – Open4education
O que torna possível a injeção de SQL?
Concatenação de comandos e parâmetros em strings
Descuidos com a manipulação de query strings em
aplicações Web
13. Globalcode – Open4education
Diminuindo o impacto – Injeção de SQL
Evitando a concatenação de parâmetros em
comandos SQL
Criar um usuário para a aplicação no servidor de
banco de dados, retirando direitos de de execução
de comandos do tipo DDL (CREATE, DROP,
ALTER)
Utilizando soluções ORMs como Entity Framework
e NHibernate
14. Globalcode – Open4education
Evitando o acesso indevido a informações
Criptografia de arquivos de configuração
Armazenar segredos em alguma solução
específica (Azure Key Vault, por exemplo)
JWT (JSON Web Token) em APIs REST
HTTPS em aplicações Web sempre (sites,
serviços, APIs)
15. Globalcode – Open4education
Azure Key Vault
Armazenamento de configurações
sensíveis
Acesso a dados armazenados mediante
concessão de acesso
Integração com Azure Active Directory
16. Globalcode – Open4education
JWT (JSON Web Tokens)
Uso de tokens criptografados
Bearer Authentication
Emprega HMAC ou RSA
Tecnologia multiplataforma
Tokens formados por 3 partes (Header, Payload e
Signature)
19. Globalcode – Open4education
JWT + soluções de mercado
Azure API Management
WSO2
Mulesoft API Manager
Keycloak
IdentityServer 4
20. Globalcode – Open4education
JWT + soluções de mercado
Azure API Management
WSO2
Mulesoft API Manager
Keycloak
IdentityServer 4
21. Globalcode – Open4education
APIs REST + recursos na nuvem
Algumas recomendações:
Acesso a bancos de dados por faixas de IP
Soluções do tipo PaaS costumam vir com
HTTPS habilitado por default (exemplo Azure
App Service)