protection fichier par php et fichier .htaccess
Forum Programmation : protection fichier par php et fichier .htaccess
Bonjour à tous
Je viens de créer un petit site où je mets des photos et vidéos.
Il n'y a qu'une seule page php, un dossier datas qui contient les images et videos.
Pour accéder à la page, il faut remplir un formulaire, identfiant et mot de passe. Si les deux sont correctes, j'affiche les images et vidéos toujours sur la page php.
Mais là n'est pas le problème du php, mon script fontionne très bien pour le mot de passe. Mais rien qu'avec cette protection, on peux directement taper l'adresse allant aux fichiers "datas" contenant les images et videos et accéder aux fichiers.
Donc ma protection ne protége pas le dossier ftp, mais juste l'affiche de la page php.
J'ai donc utiliser les fichiers .htaccess et .htpasswd.
Ca fontcionne parfaitement, on ne plus accéder aux fichiers "datas".
Mais là ya un problème de fonctionnalité, je suis obligé maintenant de mettre deux fois l'identifiant et le mot de passe (une fois pour le script php, et une deuxiéme quand j'affiche les images issues de "datas" ).
Comment protéger l'accès au dossier "datas", juste en mettant qu'une seule fois le mot de passe... en gros n'avoir que la demande d'authentification de mon script php et non celui de .htaccess et .htpasswd ?
Désolé pour la longueur de ma demande
Merci pour vos réponses.
Message édité par alexis10 le 12-05-2008 à 20:32:11
En gros, ce que je veux savoir c'est si on peux faire ça et comment:
lorsque j'affiche les images et vidéos, j'indique l'identifiant et le mot de passe au module d'identification qui apparait par les fichiers .htaccess et .htpasswd ?
Répondre à alexis10
Salut, utilises les sessions en PHP, ça te simplifiera tous et plus besoin de .htaccess
Message édité par Anonyme le 13-05-2008 à 16:30:22
Merci pour ta réponse...
Oui, c'est vrai, je connais l'utilisation des sessions et ç peux être une bonne idée.
Mais imaginons que quelqu'un qui n'as pas de mot de passe ni d'identifiant, mais connait l'adresse du dossier où se trouve les images que ma page php affiche, à savoir "http://site/datas/image.jpg"... et bien dans ce cas, le gars en question pourra accéder au fichier image.jpg directement sur le serveur ftp.
je ne sais pas trop quoi faire à vrai dire, a moins qu'on me dise que mon problème est commun à tous les sites, ou en gros, si on me dit, qu'on peux accéder directement à des fichiers si on connait précisément l'adresse. Mais là je pense que c'est faux.
voici mon code pour ma page unique:
<?php
$users_allowed=array('user');
if(isset($_POST['id']))
{
$identifiant=$_POST['id'];
}
else
{
$identifiant="";
}
if(isset($_POST['mdp']))
{
$mot_de_passe=$_POST['mdp'];
}
else
{
$mot_de_passe="";
}
if(in_array($identifiant, $users_allowed) AND $mot_de_passe=="password" )
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Private Page Unlocked v1.0</title>
</head>
<body>
<h3 align="center">Blablabla/h3>
<hr/>
*********CONTENU DE MA PAGE *************
<img src="datas/image.jpg">
</body>
</html>
<?php
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Private Page Locked</title>
</head>
<body>
<div align="center">
<form action="index.php" method="post">
<table border="0" align="center">
<tr>
<td align="right">Identifiant: </td><td align="left"><input name="id" type="text" size="10" maxlength="10"></td>
</tr>
<tr>
<td align="right">Mot de passe: </td><td align="left"><input name="mdp" type="password" size="20"></td>
</tr>
</table>
<input type="submit" value="Accéder à la page">
</form>
</div>
</body>
</html>
<?php
}
?>
Message édité par alexis10 le 13-05-2008 à 18:35:30
Répondre à alexis10
Tu fais un ptit script de login qui démarre une session si le pseudo et le mot de passe sont correct! ensuite sur la page que tu veux protéger tu fais:
<?php
session_start();
if($_SESSION['connect'] != true) {
echo "Pour accéder à cette zone vous devez vous connectez";
exit;
}
?>
Puis le reste de ta page...
Message édité par Allstar27 le 13-05-2008 à 18:33:27
Hosting Favicon
Clic pas ici
Répondre à Allstar27
en gros c'est pas ma page que je veux protéger, mais mes fichiers sur mon serveur ftp. L'accès à ma page est restreinte, ya pas de problème de ce point de vue là je pense.
Répondre à alexis10
bon, j'ai attendu suffisamment longtemps, je peux continuer ce topic
donc mon problème persiste. Je sais, il y a déjà un topic sur le même sujet ici: http://www.infos-du-net.com/forum/ [...] e-htaccess
mais le gars est parti sans donner la réponse.
Donc je repose ma demande:
sur mon serveur, j'ai un repertoir /test. Dans ce répertoire, j'ai une page php welcome.php. Cette page php affiche une image yoda.jpg, qui se trouve dans le repertoire /test/image.
-> en utilisant les fichiers .htaccess et .htpasswd pour protéger le dossier /test , ma page welcome.php commence à s'afficher, mais dès que l'image yoda.jpg doit être chargé, le fichier .htaccess fait son effet et me demande un identifiant et un mot de passe.
Question:
comment faire, pour juste protéger l'accès à un répertoire tout en ayant la possibilité d'afficher les éléments via une page web. Je veux protéger le dossier /test et /test/image , mais pouvoir afficher toutes les pages php et html convenablements, sans avoir à mettre de mot de passe.
En gros, protéger l'accès ! Comme sur tous les sites.
A noter que l'utilisation de $_SESSION est un très bonen idée, très pratique, que je mets tout le temps en oeuvre. Mais, ahahah, ça ne change rien à la protection. On protége juste les pages dans ce cas. Bien sur, si le gars n'as pas ouvert de session, il ne peux pas savoir que mes images soient dans /test/image puisque sans une session, la page ne s'affichera pas, et donc le code source ne contiendra pas de lien vers des repertoires du serveur... je sais tout ça.... c'est vrai que ma demande est un peu bizarre. Néanmoins, si un gogo essaie de mettre juste /test/image, bah il va tomber dans le repertoire et va voir toutes mes images, l'utilisation de $_SESSION ne servira pas à stopper ça.
Merci pour vos futures réponses...
Message édité par alexis10 le 27-05-2008 à 22:17:03
Répondre à alexis10
| alexis10 a écrit : :
|
Helle ! je ne suis pas developpeur et vu la date de parution, tu as du surement trouver la solution… moi je suis en plein de dans !
bref, voici ce que j'ai trouvé, ca peu t'interesser :
| Citation : Dans le page htaccess :
|
source du tuto : http://www.p4bl0.net/blog/post/Un- [...] icace.html
Yo
merci pour ta réponse, c'est une bonne solution que tu me propose.
Pour ma part, j'en ai trouvé une encore plus simple:
pour protéger tous les dossiers, c'est à dire, ne pas donner la possibilité de voir ce qu'il ya dedans, il suffit de créer juste un fichier "index.html" et dedans on met genre "vous accédez à une zone protégée"... ou n'importe quoi d'autre.
En effet, on sait que sur un serveur ftp normalement configurer, voir tous, ceux sont les fichiers "index.html" ou "index.htm" qui sont ouverts directement lorsqu'on accéde à un dossier qui contient ce fichier.
Voila, merci quand même !
Message édité par alexis10 le 10-03-2009 à 22:45:01
Répondre à alexis10
Il y a 2024 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
