Annonce

  •  » Utilisation
  •  » Protection contre les URL directes

#1 2015-10-19 20:12:45

thefaboss
Membre
2014-08-30
62

Protection contre les URL directes

Bonsoir chère communauté Piwigo !

J'ai plusieurs galeries Piwigo dont je suis très satisfait. Je remercie une fois de plus le staff qui a fait (et qui fait toujours) un boulot admirable sur ce projet !

Récemment j'ai installé le plugin VideoJS pour mettre en ligne des vidéos HD au format MP4.
Tout s'est bien passé, le résultat était très honorable :)

Il y a quelques jours, je consulté les statistiques HTTP de mon serveur et je me suis rendu compte que les URL de mes fichiers MP4 apparaissaient en clair, par curiosité, j'ai copier/coller les URL dans un autre navigateur web sans m'être authentifié, et les fichiers se sont chargés sans demander de mot de passe :\

C'est alors que je me suis mis à chercher des informations pour savoir comment protéger les fichiers que je souhaite partager via piwigo.
J'ai compris que le sujet n'était pas nouveau et que le staff n'a pas encore trouvé le bon compromis entre facilité de mise en oeuvre et performances.

Voici donc la procédure que j'ai suivie :

Depuis l'interface admin piwigo :
=> éditer l'utilisateur guest pour lui interdire l'affichage Haute définition
=> éditer tous les albums et sous-album afin de les rendre privés, en autorisant seulement les utilisateurs désirés

Depuis le CLI :
Créer un fichier .htaccess contenant "deny from all", puis le placer dans les dossiers suivants :
\piwigo\_data\i\
\piwigo\galleries\
\piwigo\upload\

Éditer le fichier config_default.inc.php
vi piwigo/include/config_default.inc.php
Vers la fin du fichier, modifier les 2 lignes suivantes :
$conf['derivative_url_style']=0;
=> $conf['derivative_url_style']=2;

$conf['original_url_protection'] = '';
=> $conf['original_url_protection'] = 'all';

Le résultat est plutôt concluant MAIS, car il y a un mais... les images qui ont une résolution dont la hauteur est supérieure ou égale à 1080 pixels ne sont pas protégées par la méthode détaillée ci-dessus...

Mon protocole de tests est le suivant :
J'affiche les photo d'un album puis je zoom sur l'une d'entre elles à l'aide de la fonction loupe. Une fois l'image agrandie, j'effectue un clic droit => copier l'URL de l'image (en fonction du navigateur le message est différent)
Je colle ensuite cette URL dans un nouvel onglet.
Si l'URL est de type "http://monsiteweb/piwigo/action.php?id=1&part=e" alors il s'agit d'une URL protégée.
Si l'URL est de type "http://monsiteweb/piwigo/i.php?/upload/2014/11/23/identifiantuniquedel'image.jpg" alors l'URL permet d'afficher l'image sans aucune authentification.

Vous pouvez vous rendre sur une de mes galeries qui propose un accès public intégral : http://pics.aerofab.info
Pour des exemples d'URL protégées, rendez-vous dans l'album "1er vol de l'A380" qui contient des images en faible résolution.
Pour des exemples d'URL non protégées, rendez-vous dans l'album "Février 2007" qui contient des images en haute résolution.


Si le staff passe dans les parages, merci de me donner la marche à suivre pour protéger toutes mes photos sans avoir à passer par la case redimensionnement :)

Longue vie à Piwigo !!!

PS : quelques liens utiles dont je me suis servi
Sur le blog de "Serge's Technology View" : Piwigo Security – protect your images

Sur le site linuxfr.org : Piwigo 2.7 : un chez-soi pour vos photos

Sur ce forum via un commentaire de "Yoni Jah" qui a développé un script un peu complexe à mettre en oeuvre : Secure Images

Version de Piwigo: 2.7.2
Version de PHP: 5.5.9-1ubuntu4.7
Version de MySQL: 5.5.41-0ubuntu0.14.04.1
URL Piwigo: http://pics.aerofab.info

Hors ligne

#2 2015-10-21 14:31:38

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12644

Re: Protection contre les URL directes

Bonjour thefaboss,

Intéressant résumé, en français, de la situation concernant la "problématique" des urls directes.

Est-ce que je peux résumer en copiant ce que j'avais dit sur linuxfr.org ?

plg sur linuxfr a écrit:

On peut imposer à Piwigo de passer systématiquement par un script PHP (i.php, i comme image) pour "servir" la photo. Pour cela il faut ajouter dans sa configuration locale : $conf['original_url_protection'] = 'images'; ainsi que $conf['derivative_url_style'] = 2; + ajouter un fichier .htaccess "Deny from all" dans les répertoires "upload", "galleries" et "_data/i". On n'a cependant pas encore implémenté complètement l'idée, car i.php ne vérifie pas les permissions de Piwigo. On réfléchit à le faire pour bientôt. D'un côté on ne veut pas nuire aux performances, de l'autre on veut répondre à cette problématique de sécurité. Peut-être qu'on le proposera en option seulement.

Si on voulait une implémentation plus "pure" de la notion de "proxy" (passage obligatoire par un script PHP pour servir les images), il faudrait:

1) vérifier les permissions dans i.php

2) ne plus utiliser le path (chemin du fichier), mais son identifiant numérique dans Piwigo, un peu comme on fait dans action.php. D'ailleurs, i.php deviendrait un peu comme action.php... d'ailleurs ne serait-ce pas la solution ? => passer par action.php, qui pourrait servir n'importe quelle taille de photo, comme le fait le action.php de [extension by plg] Download by Size, voir [Github] Piwigo-download_by_size file action.php@L113

Attention, car comme l'a dit récemment rvelices sur un autre fil de discussion, si on fait ça, cela signifie qu'on ne peut plus avoir d'image dans les emails de notification, ce qui est un peu dommage aussi.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#3 2015-10-21 18:00:37

thefaboss
Membre
2014-08-30
62

Re: Protection contre les URL directes

Salut Pierrick,
Effectivement la solution que tu évoques via action.php pourrait être un bon choix.
Si sa mise en oeuvre engendre certaines conséquences, il faudrait alors la proposer en option en listant les transformations qui en résulteront.

Quelque chose du genre "Protéger vos photos des url directes, attention, une fois activée, cette fonctionnalité ne vous permettra plus de..."

Question bonus 1 : en attendant une évolution officielle, est-il possible de bidouiller pour protéger les images >1080 pixels ?

Question bonus 2 : le fichier action.php serait-il en mesure de gérer d'autres formats de fichiers afin de prendre en compte les fichiers vidéo par exemple ?

Question subsidiaire : est-ce que cette problématique trouvera une solution dans la prochaine version de piwigo ?

Bonne fin de journée :)

Hors ligne

#4 2017-07-23 11:01:50

thefaboss
Membre
2014-08-30
62

Re: Protection contre les URL directes

Salut Pierrick !

Un petit up après tout ce temps pour savoir si de nouvelles pistes seront suivies concernant ce problème de sécurité qui est toujours d'actualité avec la v2.9.1 :)

Bonne continuation et longue vie à Piwigo !!!

Hors ligne

#5 2017-07-23 15:01:57

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16800

Re: Protection contre les URL directes

Bonjour,

tu utilise ?

// one of '', 'images', 'all'
//TODO: Put this in admin and also manage .htaccess in #sites and upload folders
$conf['original_url_protection'] = '';


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#6 2017-07-23 15:19:32

thefaboss
Membre
2014-08-30
62

Re: Protection contre les URL directes

Non je ne connaissais pas cette fonction, tu as de la doc sur son fonctionnement et ses limitations stp ?

Hors ligne

#7 2017-07-23 15:56:37

thefaboss
Membre
2014-08-30
62

Re: Protection contre les URL directes

En faisant une recherche avec la variable, $conf['original_url_protection'], je tombe sur une discussion qu'a eu Pierrick avec un utilisateur sur le blog http://linuxfr.org/ dont je parlais à la fin de mon premier post déjà.

Donc au final, la solution ne semble pas avoir évolué depuis...?

Hors ligne

  •  » Utilisation
  •  » Protection contre les URL directes

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact