Se connecter / S'enregistrer
Votre question

protection fichier par php et fichier .htaccess

Tags :
  • Protéger son ordinateur
  • Programmation
Dernière réponse : dans Programmation
12 Mai 2008 20:22:58

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 :whistle: 

Merci pour vos réponses.

Autres pages sur : protection fichier php fichier htaccess

12 Mai 2008 20:50:05

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 ?
Anonyme
13 Mai 2008 16:29:44

Salut, utilises les sessions en PHP, ça te simplifiera tous et plus besoin de .htaccess
Contenus similaires
13 Mai 2008 18:27:07

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
}
?>
13 Mai 2008 18:32:44

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...
13 Mai 2008 18:43:41

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.
27 Mai 2008 22:10:48

:hello:  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/271354-11-probleme-se...

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... :) 
Anonyme
7 Mars 2009 00:42:15

alexis10 a dit :
:
Citation :
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.



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 :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.+$ http://monsite.net/ [L]

À la première ligne on active la réécriture d'URL, à la seconde on vérifie si l'URL demandé n'est pas un fichier et si elle ne l'ai pas, la ligne 3 redirige vers la page de partage.


source du tuto : http://www.p4bl0.net/blog/post/Un-partage-de-fichiers-s...
10 Mars 2009 22:42:15

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 !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS