Versão CSP
Versão CSP (Content Security Policy)
O que é CSP?
Content Security Policy (CSP) é um mecanismo de segurança implementado pelos navegadores que permite controlar quais recursos (scripts, estilos, imagens, fontes, conexões etc.) uma página web pode carregar e executar. Ele é configurado pelo servidor por meio do header HTTP Content-Security-Policy e atua como uma camada de defesa contra ataques como Cross-Site Scripting (XSS) e injeção de dados.
Quando um recurso viola uma diretiva CSP, o navegador bloqueia o recurso e registra a violação no console do desenvolvedor.
Por que o CSP impacta o Fortface SDK?
O Fortface SDK Web é construído como um Web Component que carrega dinamicamente módulos de detecção facial e recursos de segurança. Esse processo envolve operações que políticas CSP restritivas podem bloquear:
- Carregamento de scripts de uma CDN própria
- Injeção de estilos inline pelo Shadow DOM do Web Component
- Uso de recursos para o motor de detecção facial
- Geração de imagens em
data:URI para preview de captura - Criação de Web Workers via
blob:URL para processamento de documentos
Diretivas CSP necessárias
Para utilizar sdk-web com CSP é necessário fazer a liberação das seguintes configurações:
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "https://cdn-loader.isface.live", "https://cdn.isface.live", "'unsafe-eval'", "'wasm-unsafe-eval'"],
styleSrc: ["'self'", "https://cdn.isface.live", "'unsafe-inline'"],
imgSrc: ["'self'", "data:"],
connectSrc: ["'self'", "https://cdn.isface.live", "https://telemetry.isface.live/", "data:", "blob:"],
fontSrc: ["'self'", "https://cdn.isface.live"],
frameSrc: ["'none'"],
frameAncestors: ["'none'"],
workerSrc: ["'self'", "blob:"],
childSrc: ["'none'"],
objectSrc: ["'none'"],
mediaSrc: ["'none'"],
baseUri: ["'self'"],
formAction: ["'self'"],
manifestSrc: ["'self'"],
upgradeInsecureRequests: [],
},
Funcionalidades do SDK por diretiva
| Funcionalidade | Diretivas utilizadas |
|---|---|
| Biometria facial | script-src, style-src, img-src, connect-src, font-src |
| Captura de documentos | script-src, style-src, img-src, connect-src, font-src |
| Upload de documentos | script-src, style-src, img-src, connect-src, font-src, worker-src (+blob:), connect-src (+blob:) |
Nota: Se a funcionalidade de upload de documentos não for utilizada, os valores
blob:emworker-srceconnect-srcpodem ser removidos.