Drupal : Sécuriser les fichiers privés avec hook_file_download
DrupalDrupalSécuritéhook_file_downloadmedia entitiesprivate filesaccess control

Drupal : Sécuriser les fichiers privés avec hook_file_download

Faille de sécurité Drupal 8/9/10 : les fichiers privés dans les media entities sont accessibles en direct. Solution technique avec hook_file_download.

Sur Drupal 8/9/10, les fichiers privés dans les media entities peuvent être accessibles en direct par des utilisateurs anonymes, même si le node parent est protégé. Faille de sécurité critique !

Le problème

  • Node protégé → Paragraph → Media entity → Fichier private://
  • L'accès se base sur l'entité immédiatement parente (paragraph/media)
  • Résultat : fichiers confidentiels accessibles en direct 🚨

La solution : hook_file_download

  • Approche 1 : Bloquer les utilisateurs anonymes
  • Approche 2 : Permission personnalisée par rôle
  • Approche 3 : Vérification selon le type MIME

Bonnes pratiques

  • Toujours utiliser private:// pour les fichiers sensibles
  • Tester l'accès anonyme aux fichiers privés
  • Logger les tentatives d'accès refusées
  • Tests automatisés (Playwright) pour non-régression

Exemple de code complet et tests inclus dans l'article !

Besoin d'accompagnement ?

Notre équipe d'experts peut vous aider à mettre en œuvre ces recommandations.

Contactez-nous