Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources 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 05/03/2006, 00h19   #1
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Par défaut PHP interdire l'accès à des données

Bonjour,

Sur mon site internet (dynamique en PHP) je cherche rendre l'accès d'un repertoire impossible à l'utilisateur X mais j'aimerai que le serveur puisse y avoir accès.

Pour l'instant j'utilise un .htaccess mais la protection est tellement efficace que même le serveur ne peut pas lire les données contenu dans le repertoire (images and co).

Dans une certaine mesure ceci est logique puisque je n'ai pas envie que les gens visualisent certaines données sans permission mais par contre je ne peux pas afficher les autres données à des gens qui se sont loggés et qui sont authorisés.

donc

1) je veux interdire l'accès à des répertoires spécifiques par une modification de l'url (style www.monsite.fr/page_interdite/)

2) je veux que quand même pouvoir afficher à l'écran certaines de ces données mais uniquement celles que les pages PHP appellent.
(style www.monsite.fr/affiche_donnee_interdite.php?id=1)

j'ai essayé de me documenter sur le sujet mais je n'ai pas trouvé quelque chose de claire.

merci pour les indications que vous pourrez m'apporter.

Zob
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 02h07   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 771
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 771
Points : 14 296
Points : 14 296
un chown apache

un chmod 700

comme cela, seuls les scripts php peuvent lire...
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 09h06   #3
Rédacteur
 
Avatar de siddh
 
Inscription : novembre 2005
Messages : 3 879
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : novembre 2005
Messages : 3 879
Points : 4 270
Points : 4 270
renseigne toi sur les htaccess aussi
__________________
Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

Cours | FAQ | Sources Javascript
Cours | FAQ | Sources PHP
Mes Articles
siddh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 11h47   #4
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Ok donc je change le propriétaire des fichiers.
je les rends lisible qu'avec les scripts PHP.

Question : je travaille sous windows : est ce grave docteur?
y-t-il des fonctions php qui permettent de changer les propriétaires et les droits d'un fichiers (je me mets à chercher en parallèle dès maintenant)?

en ce qui concerne le .htaccess, j'avoue que tout ce que j'ai trouvé m'a paru à la fois simple et compliqué dès que j'ai essayé de le mettre en application.

merci déjà pour ces solutions
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 13h48   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Avec un htaccess avec deny from all, tu peux quand même accéder à tes fichiers par un include.
Pour les images, est-ce que tu ne peux pas lire le fichier (fopen()), et renvoyer le contenu avec les headers adéquats ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 16h55   #6
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 771
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 771
Points : 14 296
Points : 14 296
sous windows, la gestion des droits est inexistante... ou presque


il te faut un .htaccess qui limite l'accès à localhost...
pour les images, il te faut utiliser ces fonctions http://www.php.net/manual/fr/ref.image.php
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 19h22   #7
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
Ou alors avec un htpasswd ou la seul ceut qui ont le mot de passe pouront y acceder
__________________
manganimes (en construction) -
zemanga
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 00h58   #8
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par Death83
Ou alors avec un htpasswd ou la seul ceut qui ont le mot de passe pouront y acceder

si j'ai bien compris, il veut protéger l'accés à certaines ressources via une authentification par script. De plus, si tu bloques l'accès avec un htaccess, les images ciblées dans la propriété src de la balise img d'une page ne s'afficheront pas.

La solution la plus simple à mon avis, est de bloquer l'accès à ce répertoire avec un htaccess (deny from all) et pour les ressources, de demander à PHP de les afficher avec une fonction header et un content-type image.

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 01h07   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par ska_root
La solution la plus simple à mon avis, est de bloquer l'accès à ce répertoire avec un htaccess (deny from all) et pour les ressources, de demander à PHP de les afficher avec une fonction header et un content-type image.

C'est exactement ce que j'ai suggéré à 13h48
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 01h16   #10
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par vg33
C'est exactement ce que j'ai suggéré à 13h48
un train peut en cacher un autre...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 09h38   #11
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Merci
Je vais donc chercher dans ce sens là.

Dès que je trouve je vous ferai part de ma solution.


Merci
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 12h15   #12
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Re-bonjour à tous

Encore un petit problème

sur le script suivant
Code :
1
2
3
4
5
6
7
image.php <?php
 header ("Content-type: image/png");
    $im = ImageCreate (200, 100)
            or die ("Erreur lors de la création de l'image");        
    $couleur_fond = ImageColorAllocate ($im, 255, 0, 0);
    ImagePng ($im); 
?>
Puis sur la page d'appel
Code :
1
2
image2.php
<img src="image.php">
il devrait normalement me sortir un carre rouge mais il ne sort rien comme si l'image n'existait pas

la bibliothèque gd2 est activée. Je ne vois pas trop d'où ca pourrait venir.[/code]
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 12h30   #13
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 771
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 771
Points : 14 296
Points : 14 296
deja, est-ce que ca marche quand tu l'appelles directement ?
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 12h52   #14
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Non ca me renvoie une série de caractère imbouffable
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 13h14   #15
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 771
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 771
Points : 14 296
Points : 14 296
et avec cette syntaxe... ?

Code :
header("Content-Type: image/png");
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 14h15   #16
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Non il me renvoie encore les mêmes caractères.
Visiblement c'est la fonction header qui ne doit pas passer (je n'ai pas accès aux erreurs car je ne travaille pas directement sur le serveur qui n'est pas à coté de moi)

Y a t il des bibliothèques à activer?
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 14h42   #17
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
OK ce script fonctionne mais avec des ' a la place des "
je trouve la solution à mon problème je l'expose et je mets un résolu

Merci
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 15h57   #18
Nouveau Membre du Club
 
Inscription : octobre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 78
Points : 31
Points : 31
dans le src de ton image, fait appel a image.php?nom=lenom
Puis fait seulement un include("$path".$_GET['nom']);

tu vas voir ca marche, en tout c'est ce que je fais.
TobyKaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 10h16   #19
Invité régulier
 
Inscription : juillet 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 17
Points : 5
Points : 5
Bonjour,

Donc j'ai opté pour une solution .htaccess qui interdit l'acces à toutes les données du répertoire privé et un chargement des photos par un header.

ma page php qui affiche mes vignettes est de la forme suivante

Code :
1
2
3
 
echo "<td width=\"140\" height=\"140\" style=\"text-align:center\" >
			<img  src=\"photo.php?f=id_photo\" ALIGN=\"ABSMIDDLE\" ></td>";
ma page photo.php va créer ma photo. attention avec les ' ou les " dans le header. il faut essayer avec les deux
Code :
1
2
3
4
5
6
7
 <?
header('Content-Type: image/jpeg');
$id_photo=$_GET['f'];
....
$im = imagecreatefromjpeg("$fichier");     // arborescence + fichier    
Imagejpeg($im);
?>

J'ai coupé du code. Par contre ce qui me gene dans cette technique c'est qu'a chaque fois que la page photo.php est appelé il y a un connection à la BDD mysql pour aller chercher le nom et le chemin du fichier.

J'ai essayé la tchnique de TobyKaos mais si le nom de la photo contient un espace alors le nom est coupé.
J'avais pensé à une connection persistante ou une variable de session.
Pour la variable de session :
Quand je mets le chemin dans $_SESSION['chemin'][$i] (pour chaque image) ca ne fonctionne pas alors que si je mets $_SESSION['chemin'] il me renvoie le chemin de la dernière vignette. bizarre que ca ne fonctionne pas toujours.

Bref c'est lent mais ca marche.

Merci beaucoup pour votre aide à tous en espérant que mon explication soit compréhensible.

Zob
Zobi-wane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 14h00   #20
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par TobyKaos
dans le src de ton image, fait appel a image.php?nom=lenom
Puis fait seulement un include("$path".$_GET['nom']);

tu vas voir ca marche, en tout c'est ce que je fais.
ARGHHH ! En plein dans la faille include ! Et vive le piratage
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web