Skip to content

Security & LOPDP

Catsplash implements multiple security layers and complies with Ecuador’s LOPDP.

Control Implementation
Hashed admin password bcrypt with pre-hash auto-detection
Rate limiting on /auth Sliding window: 5 attempts / 60s per IP
Portal CSRF Random nonce in cookie + hidden field
Admin CSRF Nonce in cookie + subtle.ConstantTimeCompare
Explicit consent required checkbox + backend validation
Control Implementation
Log anonymization SHA-256 truncated for MACs in maskMAC()
Nonces not logged Logs never contain CSRF values
Cookie-based identity ARCO+ endpoints resolve MAC from cookie
SameSite=Strict Admin cookies with strict SameSite
HttpOnly + Secure All cookies with security flags
Control Implementation
MAC validation Strict regex `^[0-9A-Fa-f]{2}(:
Separated exec args exec.Command("iptables", ...) without shell
No string interpolation Never build commands with fmt.Sprintf
Control Implementation
SQLite WAL mode Crash-resistant without corruption
Firewall cleanup signal.Notify cleans iptables on exit
HTTP timeouts http.Server with ReadTimeout, WriteTimeout, IdleTimeout
gosec CI/CD Static security scanning on every build
  • The portal requests explicit consent before connecting.
  • Consent is recorded with timestamp in the database.
  • Users can access the privacy policy before consenting.
  • Access: /data-request allows requesting personal data.
  • Portability: Data is exported in JSON format.
  • Cancellation: /data-deletion allows requesting deletion.
  • Opposition: Users can disconnect at any time.
  • Session data is automatically deleted on expiration.
  • No indefinite retention of personal data.
  • Logs do not contain identifiable personal data.
  • Personal data access logging (audit_log).
  • Data deletion logging.
  • Authentication attempt logging (success and failure).
  • Masked MACs in audit records.