🔒 Guide de Sécurité
PulseHub est construit avec la sécurité comme préoccupation fondamentale.
Authentification
- Mots de passe : bcrypt avec facteur de coût 12 — jamais stockés en texte clair
- Sessions :
HttpOnly,SameSite=Strict,use_strict_mode, régénérées à la connexion - Comparaison en temps constant via
password_verify()ethash_equals()
Prévention d'Injection SQL
Chaque requête utilise des instructions préparées PDO avec EMULATE_PREPARES = false. L'entrée utilisateur ne peut jamais être interprétée comme syntaxe SQL.
Prévention XSS
Toute sortie dynamique est échappée avec e() → htmlspecialchars(ENT_QUOTES | ENT_HTML5, 'UTF-8').
Protection CSRF
Les cookies SameSite=Strict empêchent les requêtes cross-site. Les formulaires de connexion et d'installation incluent un champ caché _token.
Vérification de Signature Webhook
- WhatsApp, Facebook, Instagram : HMAC-SHA256 avec App Secret
- Viber : HMAC-SHA256 avec Auth Token
- Tous utilisent
hash_equals()(temps constant)
Contrôles d'Accès aux Répertoires
Les répertoires sensibles (config/, app/, data/) sont bloqués de l'accès web via .htaccess et la configuration nginx.
En-têtes de Sécurité Recommandés
<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>
Garder PulseHub Sécurisé
- Maintenez PHP et MySQL à jour
- Utilisez HTTPS partout
- Faites tourner les clés API périodiquement
- Surveillez les logs cron
- Sauvegardes régulières de la base de données et du répertoire
config/