Skip to content
GitHub

Protección de Datos

La protección de datos es crítica, especialmente al manejar información financiera y personal (PII) en los módulos de Remuneraciones y Contabilidad.


NivelDescripciónEjemplosControles
🟢 PúblicoInformación no sensibleDocs técnicos, Landing pageNinguno específico
🟡 InternoUso exclusivo de la orgIDs de usuario, config UIAutenticación requerida
🟠 ConfidencialInformación sensible del negocioDetalles de contratos, montosRBAC, Auditoría de acceso
🔴 CríticoPII y secretosRUT, Sueldos, Claves, TokensCifrado, Acceso restringido, Logs enmascarados

  1. Nunca commitear credenciales en Git (.env está en .gitignore)
  2. En desarrollo local, usar .env.local no compartido
  3. En producción (Render/Cloudflare), inyectar secretos como Variables de Entorno
  4. Rotar llaves críticas (DB Password, JWT Secret) cada 90 días

Para prevenir fugas de datos en sistemas de monitoreo, sanitiza objetos antes de loguear:

utils/sanitize.ts
const SENSITIVE_KEYS = ['password', 'token', 'secret', 'rut', 'sueldo', 'clave'];
function sanitizeLog(data: Record<string, any>): Record<string, any> {
const sanitized: Record<string, any> = {};
for (const [key, value] of Object.entries(data)) {
if (SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k))) {
sanitized[key] = '[REDACTED]';
} else if (typeof value === 'object' && value !== null) {
sanitized[key] = sanitizeLog(value); // Recursivo
} else {
sanitized[key] = value;
}
}
return sanitized;
}
// Uso
console.log(sanitizeLog({ user: 'chris', password: 'secret123', rut: '12345678-9' }));
// Output: { user: 'chris', password: '[REDACTED]', rut: '[REDACTED]' }

Implementamos cifrado en múltiples capas:

Todo tráfico HTTP es exclusivamente HTTPS (TLS 1.2+).

ControlConfiguración
HSTSmax-age=31536000 (1 año)
CertificadosGestionados por Cloudflare + Render
TLS VersionMínimo 1.2, preferido 1.3
Headers de Seguridad
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY

Nivel de DatoCifrado TránsitoCifrado ReposoAccesoLogging
🟢 Público✅ HTTPSLibreNormal
🟡 Interno✅ HTTPSAutenticadoNormal
🟠 Confidencial✅ HTTPSRBACAuditado
🔴 Crítico✅ HTTPS✅ AES-256RestringidoEnmascarado