Auteur Sujet: Accéder à Une Image Uniquement Par Tel Page  (Lu 1560 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne quichedood

  • Débutant
  • *
  • Messages: 30
Accéder à Une Image Uniquement Par Tel Page
« le: 31 mai 2004 à 14:04:30 »
Salut à tous,

Voilà j'aimerais pouvoir limiter l'accès aux images de ma galerie photo.
elles sont donc dans un sous repertoire.
Pour avoir accès au site vous devez être membre. Un membre n'a pas forcement accès à tout les dossiers, c'est pour celà qu'il me faut restreindre l'accès aux images. Le problème est que si un visiteur connait l'url complète jusqu'a une image il pourra l'afficher (même si il n'est pas membre) et un membre pourra également voir les images présentent dans un dossier auquel il n'a normalement pas accès.

J'ai regarder sur ce forum, il y a qq post interressants mais aucun, je crois, ne résoud réelement mon problème  :(

en fait il faudrait pouvoir permettre l'accès à une image uniquement en passant par un fichier (par exemple : "voir_images.php")

j'ai vu des "RewriteRule" avec les .htaccess mais ça n'empêche apparement pas d'accèder à une image en rentrant son url complète.

J'ai déjà désactivé l'affichage des index mais bon c'est pas encore parfait comme système.
 

Hors ligne Lymf

  • Habitué
  • **
  • Messages: 111
    • http://www.edustries.be
Accéder à Une Image Uniquement Par Tel Page
« Réponse #1 le: 31 mai 2004 à 14:26:18 »
bon, alors, je ne sais pas si elle est optimisée, mais je sais que ca marche

tout d'abord, il faut que tu mettes tes images à un endroit inaccessible depuis un browser, comme par exemple si ton domaine pointe vers /.../www/tonsite, ben tu les mets dans /.../www/mesimagescachees/

ensuite ta page qui affiche l'image :
<?
if (!$image || !file_exists("/home/l/login/www/mesimagescachees/".$image))
{
    echo"L'image appelée n'existe pas";
}
else
{  
print("<br><center><img src=\"img.php?image=$image\"></center>");
}?>

ensuite, le code de la page img.php :
<?
if (file_exists($image)) {

$src = ImageCreateFromJpeg(/home/l/login/www/mesimagescachees/".$image);

header("Content-type: image/jpeg");
ImageJpeg($src, null, -1);
ImageDestroy ($src);
}
?>

Bon, je suppose que cette solution n'est pas la meilleure car elle recrée une image à chaque affichage (ImageCreateFromJpeg) mais je sais que ca fonctionne.
Si quelqu'un a mieux, qu'il le dise au plus vite

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Accéder à Une Image Uniquement Par Tel Page
« Réponse #2 le: 31 mai 2004 à 14:29:43 »
if (file_exists($image) && utilisateur_autorise())  {
« Modifié: 31 mai 2004 à 14:30:03 par Ice »

Hors ligne quichedood

  • Débutant
  • *
  • Messages: 30
Accéder à Une Image Uniquement Par Tel Page
« Réponse #3 le: 31 mai 2004 à 15:28:22 »
Lymf : C'est pas bête du tout ça comme système, j'y avais pensé, bon effectivement c'est un peu lourd (j'ai des thumbnails en plus à gérer :P)

enfin je note cette solution si quelqu'un à plus simple je suis aussi preneur  :rolleyes:

merci Lymf !

Hors ligne quichedood

  • Débutant
  • *
  • Messages: 30
Accéder à Une Image Uniquement Par Tel Page
« Réponse #4 le: 31 mai 2004 à 23:21:50 »
Bon j'ai trouvé une solution :)

documentroot : d:\www
/www/private/01/
.htaccess (deny from all)
.htgroup (un groupe par dossier d'image)
.htpass (ensemble des membres inscrits)
Les 2 derniers fichiers sont rempli à partir de ma base mysql et réécrit dès qu'un changement intervient.
 
/www/ma_galerie/fichiers/img01/
/www/ma_galerie/fichiers/img02/
Dans chacun des dossiers, lors de la création, un .htaccess est généré avec à l'intérieur :
<Limit GET POST>
require group grp10
</Limit>
 
ou "10" représente l'id du dossier.
 
Voilà ça peut peut-être sembler lourd mais au moins niveau sécurité je pense pas pouvoir faire mieux  

par contre le cryptage des mot de pass dans le panneau d'admin chez phpnet c'est lequel ? (md5, ... ?)
il faut que ce soit le même que celui que j'utilise pour crypter mes pass qui sont présents dans ma base mysql.

on peut choisir la méthode de cryptage dans Apache ?

Hors ligne 2ae

  • Débutant
  • *
  • Messages: 70
    • http://www.ensieta.fr/2ae
Accéder à Une Image Uniquement Par Tel Page
« Réponse #5 le: 01 juin 2004 à 08:59:41 »
Une autre solution etait de mettre tes images dans un repertoire protege par htaccess n'autorisant l'acces à personne puis de mettre un fichier accesimage.php dans un repertoire accessible avec

<?php
test, la personne est elle autorisee ?
header ("Content-type: image/jpeg");
si OUI {
readfile(le chemin relatif de ton dossier protege.acharger);
}
si NON {
readfile(le chemin d'une image par defaut indiquant par exemple a l'utilisateur de s'inscrire);
}
exit();
?>

et dans ton fichier appelant les images, tu mets :
<img src=accesimage.php?acharger=tonimage border=0>

Qu'en penses tu ? C'est ce que j'ai fait sur mon site et ca marche nickel

Hors ligne quichedood

  • Débutant
  • *
  • Messages: 30
Accéder à Une Image Uniquement Par Tel Page
« Réponse #6 le: 01 juin 2004 à 11:22:59 »
Ha oui c'était peut-être plus simple comme ça...bon si mon système ne marche pas totalement je me pencherais la dessus :)