Saltar al contenido principal

🔒 Guía de Seguridad

PulseHub está construido con la seguridad como una preocupación fundamental.


Autenticación

  • Contraseñas: bcrypt con factor de costo 12 — nunca almacenadas en texto plano
  • Sesiones: HttpOnly, SameSite=Strict, use_strict_mode, regeneradas en el login
  • Comparación en tiempo constante vía password_verify() y hash_equals()

Prevención de Inyección SQL

Cada consulta usa sentencias preparadas PDO con EMULATE_PREPARES = false. La entrada del usuario nunca puede ser interpretada como sintaxis SQL.


Prevención de XSS

Toda salida dinámica es escapada con e()htmlspecialchars(ENT_QUOTES | ENT_HTML5, 'UTF-8').


Protección CSRF

Las cookies SameSite=Strict previenen solicitudes cross-site. Los formularios de login e instalador incluyen un campo oculto _token.


Verificación de Firma de Webhooks

  • WhatsApp, Facebook, Instagram: HMAC-SHA256 con App Secret
  • Viber: HMAC-SHA256 con Auth Token
  • Todos usan hash_equals() (tiempo constante)

Controles de Acceso a Directorios

Los directorios sensibles (config/, app/, data/) están bloqueados del acceso web vía .htaccess y configuración de nginx.


Headers de Seguridad Recomendados

<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Mantener PulseHub Seguro

  1. Mantén PHP y MySQL actualizados
  2. Usa HTTPS en todas partes
  3. Rota las claves API periódicamente
  4. Monitorea los logs del cron
  5. Realiza copias de seguridad regulares de la base de datos y el directorio config/