faille de sécurité : vignettes publiques générée dans champ privé

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'en suis aux finitions de mon site et je vérifie sa sécurité.
J'ai trouvé une faille que je veux résoudre.

j'ai un type de contenu pour lequel les images doivent être strictement réservé aux abonné.
Tous les autres types sont publics, donc le réglage général de :
admin/config/media/file-system
est "fichiers publics" pour "méthode de téléchargement par défaut".
pour le type dont je veux protégé les images, le champ image est réglé sur "fichiers privés" dans "destination pour le transfert".

Il y a une faille qui permet aux non abonnés d'accéder à certaines images.

Je liste les 4 possibilités :
URL profondes images complètes :
Ex : http://www.example.com/sites/default/files/private/example.jpg
ok : le .htaccess bloque l'accès

URL profondes vignettes :
http://www.example.com/sites/default/files/private/styles/thumbnail/priv...
ok : le .htaccess bloque l'accès

URL système drupal images complètes :
Ex : http://www.example.com/system/files/example.jpg
ok : le réglage private bloque l'accès aux non abonnés

URL système drupal vignettes :
http://www.example.com/system/files/styles/thumbnail/private/example.jpg
FAILLE : ces images sont publiques, visibles même par les anonymes, et peuvent donc potentiellement être indexées par les moteurs de recherche.

Ma question est évidente : comment rendre les vignettes privées ? Accessoirement pourquoi drupal ne rend-il pas privé en même temps les images taille réelle et les styles générés en plus (thumbnail, medium, large...) ?

Merci à tous si vous m'aider à résoudre cette question pointue.

Ecoute Zied,

Je crains que nous ne nous comprenions pas.
Tu es développeur Drupal et je suis nouveau sur Drupal.
Je concède bien volontiers que je n'ai pas été assez clair dans ma première explication.
Oublions les URL profondes standards et les htaccess.
Concentrons-nous sur le système d'alias de Drupal, les pseudo adresses en system/files.
Donc ci-dessous je liste la visibilité des images par le chemin utilisant ces alias
Ex : http://www.example.com/system/files/example.jpg
Voilà ce que je constate selon les rôles utilisateurs Drupal pour mes images :

Taille réelle :

  • anonyme : invisible
  • authentifié : invisible
  • abonné premium : visible

Tout est ok, c'est le paramétrage que je veux.

Maintenant les vignettes :

  • anonyme : VISIBLE
  • authentifié : VISIBLE
  • abonné premium : visible

Il y a donc une faille pour les vignettes, qui ne devraient pas être visibles pour les anonymes et les authentifiés.

Donc tout cela n'a pas de rapport avec les htaccess, c'est évident.
Il doit y avoir un réglage Drupal mais je ne le trouve pas. Peut-être faut-il plonger dans le code, peut-être faut-il un module additionnel pour un contrôle plus fin des permissions, le fait est que j'aimerais résoudre ce tout petit problème.

Si quelqu'un a déjà constaté un problème similaire, qui relève un peu de la paranoïa je l'avoue ;) , merci de me dire si vous avez des pistes.