design-apis-guide

View on GitHub

Guia para Design de APIs

Segurança

A segurança de uma API deve ser pensada desde a concepção do projeto e existem muitas maneiras de proteger uma API, por exemplo, utilizando autenticação básica, OAuth, entre outros, essa aunteticação/autorização não deve ser sem estado e não depender de sessão. Além disso, cada requisição de uma API deve possuir algum tipo de credencial de autenticação que deve ser validada no servidor de cada solicitação 1.

Além da autenticação existem outros fatores importantes a serem considerados, como:

Sempre utilize TLS

Toda API deve utilizar TLS (Transport Layer Security). O TLS protege com criptografa as informações que sua API traféga. Sem o uso do TLS, terceiros pode interceptar e ler informações confidenciais em trânsito, como credenciais de API e dados privados. Você pode conhecer o TLS pelo nome de seu predecessor, SSL. Você saberá que um site tem TLS ativado quando seu URL começa com https:// em vez de http://. 2

Criptografe dados sensíveis

A criptografia é um elemento chave do protocolo de segurança, portanto os desenvolvedores devem garantir que dados sensíveis sejam criptografados na fonte de dados. 3

Identificar vulnerabilidades

Um dos pontos importantes para fortalecer suas APIs é descobrir as vulnerabilidades, para isso realize testes rigorosos. Você deve tentar descobrir vulnerabilidades na fase inicial de desenvolvimento, para que possa corrigi-las de maneira rápida e fácil. 3

Use uma autenticação forte

No mundo digital, a autenticação é o processo de verificação da identidade de um usuário. Essencialmente, retira a máscara de qualquer usuário que queira ver suas informações. Portanto, você deve sempre saber quem está chamando suas APIs. Existem vários métodos para autenticar:

No mínimo, você deve usar uma chave de API (chave assimétrica) ou autenticação de acesso básico (usuário/senha) para aumentar a dificuldade de invadir seu sistema. Mas você deve considerar o uso do OAuth 2 como seu protocolo de escolha para uma segurança robusta de suas APIs. 4

Princípios de Design para segurança de APIs

A segurança de uma aplicação não se restringe apenas a autenticação e autorização. No artigo “The Protection of Information in Computer Systems”3, Jerome Saltzer e Michael Schroeder apresentam oito princípios de design para proteção de informação em sistema de software, esses princípios podem ser utilizados para diversos típicos de aplicação, não se restringindo apenas as APIs.



⬅️ voltar para menu

➡️ próximo tópico Logs



Referências