Problème sécurité

Linkman
Invité n'ayant pas de compte PHPfrance

21 janv. 2010, 15:43

Bonjour,

Je suis en train de galèrer sur la sécurité de mon site. Je vous explique mon problème:

J'ai une partie membre de mon site ou seul les personnes inscrites ont le droit de se connecter. J'ai un tableau récapitulatif de leur coordonnées. Dans celui-ci, il y a un pdf et une image qui doivent impérativement rester confidentielles !

Ces images et pdfs sont dans un dossier hors du dossier http de base de mon site. J'arrive à afficher mes images et pdf que je récupère (avec des headers car sinon je ne peux pas y avoir accès en lien direct).

Cependant, quand je clic droit du mon image et je copie l'url, je la colle dans mon navigateur et comme par magie je peux la voir.

je n'aimerais justement pas la voir par url comme ça. htaccess ne m'interesse pas car je n'ai pas envi que les utilisateurs doivent saisir un mot de passe pour voir leur pdf et images.

Quelqu'un aurait-il une solutions à me proposer car cela fait 3 jours que je suis dessus.

Merci,
Linkman

Mammouth du PHP | 568 Messages

21 janv. 2010, 16:08

pas possible je pense.

ViPHP
AB
ViPHP | 5818 Messages

21 janv. 2010, 17:16

Bonjour,
J'arrive à afficher mes images et pdf que je récupère (avec des headers car sinon je ne peux pas y avoir accès en lien direct).
C'est contradictoire avec le reste de ton histoire :-k


Pour tester tu peux essayer de mettre tes pdf et images dans un répertoire protégé par un .htaccess avec comme mention : 'deny from all' et faire afficher tes pdf et images toujours avec des headers.

Mais on préconise si possible ta solution parce que c'est encore plus sécurisé donc mystère ...

Mammouth du PHP | 985 Messages

22 janv. 2010, 17:27

Si le dossier qui contient les fichiers était vraiment en dehors du dossier HTTP, je ne voie pas comment on pourrait les afficher grâce aux headers.
Les headers sont envoyés au poste client (navigateur) et donc c'est ce même navigateur qui va les chercher pour les afficher...
Donc si ils sont accessibles en utilisant les headers, ils seront effectivement accessibles aussi en utilisant directement une URL.
Même chose pour un dossier protégé par un .htaccess...

Donc tu devrais surement déplacer les fichiers au bon endroit, et ensuite une des solutions pour y accéder serait d'utiliser par exemple la fonction readfile()...
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
AB
ViPHP | 5818 Messages

22 janv. 2010, 19:17

Donc si ils sont accessibles en utilisant les headers, ils seront effectivement accessibles aussi en utilisant directement une URL.
Même chose pour un dossier protégé par un .htaccess...
readfile()...
$img = isset($_GET['img'])? $_GET['img'] :'';

header("Content-Type: image/jpeg");

readfile("$img");
Cet exemple permet de lire des photos situées dans un répertoire protégé par un .htacess