Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Implémentation d'un dossier d'images privé
#2
mode paranoïaque :


1 : modifie ton .htaccess de façon à empêcher l'accès web au répertoire des photos


2 : monte un tag utilisateur qui prend deux paramètres : un path vers une image + un sid qui sera pour nous l'id de la session FEU. Ton tag utilisateur vérifie en premier point que le SID de FEU existe bien en base. Pour cela c'est assez simple puisque FEU et customcontent te met à disposition pas mal de code du type if(islogged($pseudo)). Si le SID passé en paramètre correspond bien à un identifiant FEU actuellement connecté alors passe au point suivant. Sinon tu remplace le path vers ton image par un path préconçu d'une image type 404.jpg ou 401.jpg que tu aura pris soin de customiser pour l'occasion. Ensuite tu passe au point suivant

2bis : comme à chaque fois qu'on passe un chemin par paramètre, il faut être très vigilant sur les failles de sécurité. Je te conseil peut être de te contenter d'un répertoire fixé à l'avance et ne faire passer que le nom du fichier + une vérification que le paramètre ne contienne pas des conneries du type "../../../config.php" et autre.

3 : code dans la suite du même tag utilisateur un lecteur du fichier image et fait un beau echo $monBufferImage pour le retourner. Bien évidement tu auras pensé préalablement à faire un echo des headers HTTP qui correspondent à l'image selon l’extension.

3b : pense en même temps à retourner des headers pour éviter la mise en cache

Code :
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé

4 : colle ta balise dans une page nommée 'toto' qui sera ni dans le menu, ni cacheable, ni searchable ni rien.

5 : monte ta galerie en prenant soin de remplacer dans le gabarit toutes les occurances des url d'images par un appel à index.php?page=toto&showtemplate=false&SID=...&path=...

Note : &showtemplate=false te permet de t'affranchir du gabarit affecté à la page toto, dans notre exemple c'est comme avoir une page php vide avec uniquement le code de la balise utilisateur dedans.

Voilà

Normalement tes images seront envoyée "telles que" des images le seraient au navigateur. L'url de chaque image pointera vers la page toto et bien évidement le SID évite qu'une url se promène sur la toile ou soit crawlée par google.
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)