Pular para o conteúdo
Join the APIOps community, more info at apiops.info.

Lista de verificação de auditoria da API

Uma lista de verificação abrangente para verificar a prontidão da API antes da publicação, abrangendo o design, a documentação, a segurança e a conformidade com a política.

  • Melhor compreensão dos princípios da lista de controlo de auditoria da API
  1. Utilize a lista de verificação de auditoria da API para garantir que a conceção da API cumpre os requisitos funcionais e não funcionais, incluindo segurança, desempenho e conformidade.
  2. Realizar auditorias para garantir que as APIs cumprem as normas organizacionais, técnicas e legais antes da publicação.
  3. Garantir que os modelos de segurança, a configuração da porta de ligação e os termos legais sejam claros e acessíveis aos consumidores.

Lista de verificação da API REST

O conceito está pronto quando…

CritériosOWASP API Top 10OpenAPI 3.1.x
A API é baseada em necessidades comerciais clarasAPI9:2019❌
A API oculta dados brutos de backend; projetada para uso compartilhadoAPI6:2023❌
Os pontos de extremidade têm valor comercial e descrições de recursosAPI9:2023✅ (via descrição)
O design da API é consistente com outras APIsAPI8:2023, API9:2023❌
A nomenclatura de dados/atributos usa o inglês descritivo-❌
Os campos obrigatórios são especificadosAPI6:2019✅ (via obrigatória)
As datas usam o formato ISO com fuso horárioAPI8:2019✅ (via format: date-time)
Os dados gerais usam valores padrão (por exemplo, ISO)API6:2023, API8:2019(via enum, formato, padrão)
Nomes de campos evitam acrônimos, usam palavras completasAPI9:2023❌
A criação de novos recursos retorna identificadoresAPI2:2023(via esquema de resposta/exemplo)

O protótipo de design da API estará pronto quando…

CritériosOWASP API Top 10OpenAPI 3.1.x
Todos os itens da lista de verificação de conceitos são auditados–❌
Os caminhos de endpoint contêm no máximo dois recursos/sub-recursos-❌
Os pontos de extremidade e os atributos incluem exemplos-✅ (via exemplo, exemplos)
POST é usado para criar/atualizar (não PUT, a menos que esteja completo)-❌
DELETE é usado para remover recursos-❌
Estratégia de controle de versão decidida; suportada pelo gatewayAPI9:2023❌
GET não tem corpo de solicitação; retorna 200 OK com conteúdo-➖ (convenção; não aplicada)
GET retorna 204 se o corpo da resposta estiver vazio-(pode definir a resposta 204)
POST retorna 200 OK ao atualizar-(pode definir códigos de status)
O POST retorna 201 Created with ID on create-✅
DELETE retorna 204 OK em caso de sucesso-✅
Erros 400 fornecem informações de erro específicasAPI6:2023(descrito no esquema de resposta)
401 Não autorizado para credenciais incorretasAPI2:2023✅ (documentação de resposta padrão)
403 Forbidden para operações não autorizadasAPI5:2023✅

A API é passível de manutenção na produção quando…

CritériosOWASP API Top 10OpenAPI 3.1.x
Todos os itens de protótipo/design auditados-❌
Publicado via gerenciamento de APIAPI10:2019, API8:2023❌
Visível no portal do desenvolvedorAPI9:2023❌
Acessível somente via gateway de APIAPI9:2023, API8:2023❌
Limites de taxa são impostosAPI4:2023❌
Documentos gerados automaticamente a partir de especificações/esquemasAPI9:2023✅
Atualização automática da especificação no gateway/portal de desenvolvimentoAPI9:2023✅ (indireto por meio de ferramentas)
Especificação validada em cada alteração-(prática recomendada)
A especificação contém o esquema de solicitação/resposta-✅
O esquema e os exemplos são aprovados na validação-✅
Usa HTTPS ou protocolos criptografadosAPI10:2023❌
Publicado sob o domínio oficial da organizaçãoAPI8:2023❌
Pontos de extremidade protegidos por autenticaçãoAPI2:2023, API4:2023➖ (pode definir securitySchemes)
Autenticação baseada em token-✅ (via securitySchemes)
Protegido contra CSRFAPI8:2023❌
Entradas validadas automaticamente pela estruturaAPI8:2023✅ (indireto via schema)
Saídas auto-escapadas pela estruturaAPI8:2023❌
Criptografia para dados em trânsito/armazenamentoAPI8:2023❌
Integridade da mensagem implementadaAPI6:2023, API7:2023❌
UUIDs/pseudo-identificadores em vez de IDs de banco de dadosAPI7:2023➖ (recomendado no exemplo)
Não há dados confidenciais em URLsAPI7:2023❌
Métodos HTTP somente para os recursos pretendidosAPI5:2023✅ (definido em caminhos)

Lista de verificação da API do ASync
O conceito está pronto quando…

CritérioAsyncAPI 2.x
A API é baseada em necessidades comerciais claras❌
A API oculta dados brutos de backend; foi projetada para uso compartilhado❌
A API tem uma descrição que explica seu valor comercial e seus recursos✅
A API tem um design consistente com nossas outras APIs❌
A API e a nomenclatura de dados usam um bom inglês (ou outro idioma padrão)❌
Os campos obrigatórios são especificados✅
As datas estão no formato de data padrão ISO, incluindo o fuso horário✅
Os dados gerais usam valores padrão (por exemplo, ISO)➖
Os campos são descritos por extenso, evitando acrônimos❌
Ao publicar novas mensagens, os tópicos ou canais relevantes são claramente identificados✅

O protótipo de design da API estará pronto quando…

CritérioAsyncAPI 2.x
Todos os itens da lista de verificação de conceito são auditados❌
O design da mensagem contém uma estrutura clara (eventos, comandos, consultas)✅
Todas as mensagens e atributos incluem exemplos✅
As mensagens seguem uma estrutura consistente entre tópicos/canais✅
A estratégia de controle de versão da mensagem foi decidida❌
As confirmações de mensagens recebidas são definidas (se aplicável)✅
Erros ou problemas com mensagens incluem informações de erro específicas✅
As estratégias de autenticação e autorização são especificadas➖

🚀 A API pode ser mantida em produção quando…

CritérioAsyncAPI 2.x
Todos os itens das listas de verificação do protótipo e do projeto da API são auditados❌
A API é gerenciada por meio de uma ferramenta adequada de gerenciamento da AsyncAPI❌
A API está visível em um portal do desenvolvedor❌
Os limites de taxa são aplicados ao enviar mensagens (se aplicável)❌
A documentação da API é gerada automaticamente a partir da especificação da AsyncAPI✅
A especificação é atualizada automaticamente nas ferramentas e no portal da API✅
A especificação de tópicos/canais é validada a cada alteração✅
A especificação contém o esquema para as mensagens✅
O esquema de mensagens e os exemplos são aprovados na validação do esquema✅
O transporte de mensagens garante a segurança (por exemplo, MQTT/AMQP sobre TLS)❌
A API é operada sob o domínio oficial da organização❌
Todos os tópicos/canais são protegidos por autenticação➖
A API tem autenticação baseada em token✅
A criptografia de dados em trânsito e no armazenamento é implementada conforme necessário❌
A integridade da mensagem foi implementada conforme necessário❌
UUIDs ou pseudoidentificadores são usados em vez de IDs de banco de dados➖
Informações confidenciais não são expostas em tópicos ou canais❌
A lista de permissões é usada para especificar quais clientes podem publicar/assinar✅