Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Sécurité
Sécurité Forum d'entraide sur la sécurité des sites Web, les protections, l'authentification, etc. Avant de poster -> Cours Sécurité.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/02/2011, 15h35   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 31
Points : 4
Points : 4
Par défaut Interdire l'accès à des fichiers en URL directe

Bonjour,

Je dois réaliser un site internet dans lequel je dois afficher des images après identification de l'utilisateur (login/mot de passe). Mon problème est que je ne sais pas comment faire pour interdire l'accès aux fichiers images qui se trouvent sur mon serveur web en tapant directement l'adresse URL dans un navigateur internet.

J'ai donc besoin de trouver un moyen pour autoriser l'affichage de mes images dans mes pages web mais en interdire l'accès direct.

J'ai vu qu'il était possible d'utiliser le htaccess en interdisant l'accès aux fichiers mais en autorisant l'exécution des scripts. Il me faudrait alors créer un fichier php comme ci-dessous :

Code :
1
2
3
<?
header("Content-type: image/gif");
?>
Et depuis mes pages web faire appel à ce fichier comme ceci :

Code :
<img src="MonDossierProtegé/image.php" alt=""/>

Pensez-vous que cela fonctionne? Ou avez-vous d'autres solutions à mettre en place afin d'arriver à ce que je veux?

Cdt.
clyde1021 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 20h04   #2
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Ce n'est pas comme ça que ça fonctionne. Il faut appeler ta page php dans le code source de l'image, et tu peux en profiter pour passer l'adresse de l'image en paramètre.

page "affiche_img.php"

Code :
1
2
3
4
5
6
<?php
$img = isset($_GET['img'])? $_GET['img'] :'';
header("Content-Type: image/jpeg");

readfile("$img");
?>
page visiteur

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<div style="text-align">
<img src="affiche_img.php?img=Dossier_proteger_parhtaccess/image1.jpg" />
</div>
</body>
</html>
Mais attention ça prend pas mal de ressources puisque c'est php qui fait afficher les images.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 16h12   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 31
Points : 4
Points : 4
Merci pour ces indications!

Donc en paramétrant bien mon htaccess, je peux interdire l'accès directe aux fichiers .jpg !

Et si quelqu'un utilise le même script depuis un autre site, il aura aussi accès aux images?

Et n'y a t-il pas d'autres solutions pour protéger ces fichiers?
clyde1021 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 17h10   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par clyde1021 Voir le message
Merci pour ces indications!

Donc en paramétrant bien mon htaccess, je peux interdire l'accès directe aux fichiers .jpg !
Oui. Dans le répertoire incluant ces fichiers il suffit d'avoir un fichier .htaccess avec la seule mention :
Citation:
Envoyé par clyde1021 Voir le message
Et si quelqu'un utilise le même script depuis un autre site, il aura aussi accès aux images?
Non.

Citation:
Envoyé par clyde1021 Voir le message
Et n'y a t-il pas d'autres solutions pour protéger ces fichiers?
A la place de mettre ces fichiers dans un .htacess tu peut les mettre dans un répertoire situé en dessous de la racine de ton site mais c'est pas forcément plus simple.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 10h50   #5
Invité de passage
 
Inscription : novembre 2007
Messages : 31
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 31
Points : 4
Points : 4
Citation:
A la place de mettre ces fichiers dans un .htacess tu peut les mettre dans un répertoire situé en dessous de la racine de ton site mais c'est pas forcément plus simple.
Effectivement ce ne serait pas plus simple mais cela me permettrait-il de ne pas passer par le php pour l'affichage de mes images? Je ne vois pas comment je peux accéder à un fichier qui n'est pas dans mon répertoire www ...
clyde1021 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h28   #6
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Citation:
Envoyé par clyde1021 Voir le message
Effectivement ce ne serait pas plus simple mais cela me permettrait-il de ne pas passer par le php pour l'affichage de mes images?
Non et c'est pour cette raison que je dis que ce n'est pas plus simple.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h23.


 
 
 
 
Partenaires

Hébergement Web