🔒 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()yhash_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
- Mantén PHP y MySQL actualizados
- Usa HTTPS en todas partes
- Rota las claves API periódicamente
- Monitorea los logs del cron
- Realiza copias de seguridad regulares de la base de datos y el directorio
config/