Compliance

PCI-DSS para aplicações web: checklist prático

O PCI-DSS (Payment Card Industry Data Security Standard) é obrigatório para qualquer aplicação que processe, armazene ou transmita dados de cartão de crédito. Este guia foca nos requisitos mais relevantes para desenvolvedores web.

Requisitos relevantes para web

O PCI-DSS v4.0 tem 12 requisitos principais. Para aplicações web, os mais impactantes são:

RequisitoTítuloRelevância para web
Req. 4Criptografia em trânsitoHTTPS, TLS 1.2+, certificados válidos
Req. 6Desenvolvimento seguroHeaders de segurança, SRI, CSP
Req. 11Testes de segurançaVarreduras periódicas, pentest

Requisito 4 — Criptografia em trânsito

Todos os dados de cartão devem ser transmitidos de forma criptografada. Na prática:

  • HTTPS obrigatório em todas as páginas (não apenas no checkout)
  • TLS 1.2 ou superior (TLS 1.0 e 1.1 são proibidos desde 2018)
  • Certificado SSL/TLS válido e não expirado
  • HSTS habilitado para forçar conexões seguras
# Configuração recomendada de HSTS
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

# Verificar versão do TLS com OpenSSL
openssl s_client -connect seusite.com.br:443 -tls1_2

# No nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;

O SAFETAGGY verifica: presença de HTTPS, validade do certificado, versão do TLS e configuração do HSTS.

Requisito 6 — Desenvolvimento seguro

O Req. 6 exige práticas de desenvolvimento seguro, incluindo proteção contra vulnerabilidades conhecidas. Para aplicações web:

6.4.3 — Subresource Integrity (SRI)

Scripts e estilos carregados de CDNs devem usar o atributo integrity para garantir que não foram adulterados:

<!-- Com SRI -->
<script
  src="https://cdn.exemplo.com/lib.js"
  integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8w"
  crossorigin="anonymous"
></script>

<!-- Gerar hash SRI -->
openssl dgst -sha384 -binary lib.js | openssl base64 -A

6.4.1 — Content Security Policy (CSP)

O CSP restringe de onde scripts, estilos e outros recursos podem ser carregados:

# CSP recomendado para e-commerce
Content-Security-Policy: default-src 'self';
  script-src 'self' https://cdn.trusted.com;
  style-src 'self' 'unsafe-inline';
  img-src 'self' data: https:;
  frame-src https://checkout.payment.com;
  connect-src 'self' https://api.payment.com;

6.5.x — Autocomplete em campos sensíveis

Campos de cartão de crédito devem ter autocomplete desabilitado para evitar que o navegador armazene dados sensíveis:

<input type="text" name="cardnumber" autocomplete="off" />
<input type="text" name="cvv" autocomplete="off" />

Requisito 11 — Testes de segurança

O PCI-DSS exige varreduras de vulnerabilidade trimestrais e testes de penetração anuais. O SAFETAGGY ajuda em ambos:

RequisitoFrequênciaComo o SAFETAGGY ajuda
11.3.1 — Varredura internaTrimestralVarredura padrão com relatório de conformidade
11.3.2 — Varredura externaTrimestralVarredura padrão cobre verificações externas
11.4 — PentestAnualDeep Scan com agente IA simula pentest automatizado

Configure varreduras agendadas para manter a conformidade contínua. Use o Deep Scan para testes mais aprofundados com ferramentas como nmap, nuclei e sqlmap.

Checklist de verificação

ItemRequisito PCI-DSSSAFETAGGY
HTTPS em todas as páginasReq. 4.2.1Sim
TLS 1.2+Req. 4.2.1Sim
HSTS configuradoReq. 4.2.1Sim
CSP configuradoReq. 6.4.1Sim
SRI em scripts externosReq. 6.4.3Sim
Autocomplete off em campos de cartãoReq. 6.5Sim
Varredura trimestralReq. 11.3Sim
Teste de penetraçãoReq. 11.4Sim

Boas práticas adicionais

  • Use provedores de pagamento certificados PCI (Stripe, Pagar.me, etc.) para evitar armazenar dados de cartão
  • Nunca registre números de cartão em logs ou analytics
  • Implemente rate limiting em endpoints de pagamento
  • Use iframes do provedor de pagamento em vez de campos próprios quando possível
  • Mantenha todas as dependências atualizadas (Req. 6.3)

Verifique sua conformidade PCI-DSS

Execute uma varredura e veja quais requisitos do PCI-DSS sua aplicação já atende.

Iniciar varredura