Aller au contenu principal

🔒 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() et hash_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é

  1. Maintenez PHP et MySQL à jour
  2. Utilisez HTTPS partout
  3. Faites tourner les clés API périodiquement
  4. Surveillez les logs cron
  5. Sauvegardes régulières de la base de données et du répertoire config/