Pular para o conteúdo principal

Visão Geral

A segurança é fundamental em APIs de pagamento. A FireBanking implementa múltiplas camadas de proteção, mas sua aplicação também deve seguir práticas adequadas para garantir a segurança completa da integração.

Autenticação Segura

Proteja suas chaves de API e configure autenticação adequada

Comunicação Criptografada

Use sempre HTTPS e valide certificados SSL/TLS

Proteção de Dados

Gerencie dados sensíveis conforme regulamentações

Autenticação de API

Gerenciamento de Chaves

Chaves de API Seguras

❌ Nunca faça:
  • Hardcode chaves no código fonte
  • Commit chaves no Git/repositório
  • Exponha chaves em logs ou error reports
  • Compartilhe chaves por email/chat
✅ Faça sempre:
  • Use variáveis de ambiente
  • Armazene em serviços de secrets (AWS Secrets Manager, Azure Key Vault)
  • Configure acesso restrito às chaves
  • Monitore uso das chaves
Periodicidade recomendada:
  • Produção: A cada 6 meses
  • Sandbox: A cada 3 meses
  • Imediata: Em caso de suspeita de comprometimento
Processo de rotação:
  1. Gere nova chave no dashboard
  2. Atualize aplicação
  3. Teste todas as funcionalidades
  4. Revogue chave antiga
  5. Monitore por 24h

Configuração de Ambientes

# Nunca no código!
export FIREBANKING_API_KEY="fbk_prod_sua_chave_aqui"
export FIREBANKING_BASE_URL="https://api-gateway.firebanking.com.br/v1"
export FIREBANKING_WEBHOOK_SECRET="seu_webhook_secret_aqui"

Comunicação Segura

HTTPS Obrigatório

Importante: A API FireBanking rejeita conexões HTTP. Use sempre HTTPS para todas as requisições.

Proteção de Dados Sensíveis

Dados de Cartão

PCI-DSS: Nunca armazene dados completos de cartão em seu sistema. Use nossa tokenização.

O Que NUNCA Armazenar

Dados Proibidos
{
  "❌ NUNCA SALVE": {
    "card_number": "5555555555554444",
    "security_code": "123",
    "full_track_data": "qualquer trilha magnética"
  }
}

O Que PODE Armazenar

Dados Permitidos
{
  "✅ PODE SALVAR": {
    "token": "fbk_token_abc123",
    "last_four_digits": "4444",
    "brand": "visa",
    "expiration_month": 12,
    "expiration_year": 2025,
    "holder_name": "João Silva"
  }
}

Logs Seguros

Configuração de Logs

const winston = require('winston');

// Filtro para remover dados sensíveis
const sensitiveDataFilter = winston.format((info) => {
  // Remove campos sensíveis
  const sensitiveFields = ['card_number', 'security_code', 'api_key'];

  sensitiveFields.forEach(field => {
    if (info[field]) {
      info[field] = '[FILTERED]';
    }
  });

  return info;
});

const logger = winston.createLogger({
  format: winston.format.combine(
    sensitiveDataFilter(),
    winston.format.json()
  ),
  transports: [
    new winston.transports.File({ filename: 'app.log' })
  ]
});

Monitoramento de Segurança

Alertas Recomendados

Configure alertas para:
  • Múltiplas tentativas com chave inválida
  • Requests de IPs não autorizados
  • Padrões anômalos de tráfego
  • Webhooks com assinatura inválida
// Exemplo de monitoramento
let invalidAttempts = 0;

app.use((req, res, next) => {
  const apiKey = req.headers['x-api-key'];

  if (!isValidApiKey(apiKey)) {
    invalidAttempts++;

    if (invalidAttempts > 10) {
      // Alerta de segurança
      sendSecurityAlert({
        type: 'INVALID_API_KEY_ATTEMPTS',
        ip: req.ip,
        count: invalidAttempts
      });
    }

    return res.status(401).send('Unauthorized');
  }

  next();
});
Monitore:
  • Volume anormal de transações
  • Tentativas de transações com valores suspeitos
  • Múltiplas tentativas de pagamento em pouco tempo
  • Padrões de teste suspeitos

Auditoria e Compliance

Logs de Auditoria

Exemplo de Log Estruturado
{
  "timestamp": "2024-01-15T10:30:00Z",
  "event_type": "payment_created",
  "user_id": "user_123",
  "transaction_id": "txn_abc456",
  "amount": 100.00,
  "payment_method": "credit_card",
  "ip_address": "192.168.1.100",
  "user_agent": "MyApp/1.0",
  "result": "success"
}

Retenção de Dados

Tipo de DadoTempo de Retenção
Logs de transação7 anos
Logs de acesso1 ano
Dados de webhook6 meses
Logs de erro2 anos

Checklist de Segurança

Desenvolvimento

  • Chaves de API em variáveis de ambiente
  • Validação de webhooks implementada
  • HTTPS obrigatório em produção
  • Logs sem dados sensíveis
  • Tratamento de erros sem exposição
  • Rate limiting configurado

Infraestrutura

  • Certificados SSL/TLS válidos
  • Firewall configurado
  • Monitoramento de segurança ativo
  • Backup seguro de configurações
  • Acesso restrito aos servidores
  • Rotação de chaves agendada

Compliance

  • Política de privacidade atualizada
  • Termos de uso adequados
  • Processo de incident response
  • Documentação de segurança
  • Treinamento da equipe
  • Auditoria de segurança realizada

Incident Response

Em Caso de Comprometimento

1

Contenção Imediata

  1. Revogue chaves comprometidas
  2. Bloqueie IPs suspeitos
  3. Desative webhooks temporariamente
  4. Documente o incidente
2

Investigação

  1. Analise logs de acesso
  2. Identifique escopo do problema
  3. Avalie impacto nos dados
  4. Colete evidências
3

Recuperação

  1. Gere novas chaves de API
  2. Atualize configurações
  3. Reative serviços gradualmente
  4. Monitore por anomalias
4

Comunicação

  1. Notifique stakeholders internos
  2. Comunique clientes se necessário
  3. Documente lições aprendidas
  4. Atualize processos de segurança

🔒 Lembre-se: Segurança é responsabilidade compartilhada. A FireBanking protege a infraestrutura, você protege sua aplicação.