Sécuriser un dossier créer avec mkdir
TheBleedz
-
avion-f16 Messages postés 20367 Statut Contributeur -
avion-f16 Messages postés 20367 Statut Contributeur -
Bonjour,
Je vous explique. Chaque membres inscris aura la possibilité de créer par la suite ( Après l'inscription ) un dossier portant comme nom le ID du membre qui la créer ! Jusque la pas très compliquer a réaliser ! Mais voila maintenant comment puis-je faire pour sécuriser chaque dossier créer par l'utilisateur pour que lui seul il est accès !
Plus d'information sur le dossier :
Ce dossier est créer avec la commande mkdir ( code plus bas ). Le dossier servira juste a stocker les images que l'utilisateur vas transférer a l'intérieure donc il ne doit pas avoir accès a ce dossier en tapant juste "nomdusite/nomdudossier". J'avais l'idée de le protéger par un .htaccess mais je sais pas comment m'y prendre ! Pour ca je me retourne vers vous pour lachez toute vos idées !!! Comme une petite boite a idée :D
Voici le code de la page qui va créer un dossier avec l'id du membre ( Je l'ai ultra simplifié pour que vous avez plus facile )
Merci d'avance et bonne soirée et désoler si je viens souvent demander de l'aide !
Je vous explique. Chaque membres inscris aura la possibilité de créer par la suite ( Après l'inscription ) un dossier portant comme nom le ID du membre qui la créer ! Jusque la pas très compliquer a réaliser ! Mais voila maintenant comment puis-je faire pour sécuriser chaque dossier créer par l'utilisateur pour que lui seul il est accès !
Plus d'information sur le dossier :
Ce dossier est créer avec la commande mkdir ( code plus bas ). Le dossier servira juste a stocker les images que l'utilisateur vas transférer a l'intérieure donc il ne doit pas avoir accès a ce dossier en tapant juste "nomdusite/nomdudossier". J'avais l'idée de le protéger par un .htaccess mais je sais pas comment m'y prendre ! Pour ca je me retourne vers vous pour lachez toute vos idées !!! Comme une petite boite a idée :D
Voici le code de la page qui va créer un dossier avec l'id du membre ( Je l'ai ultra simplifié pour que vous avez plus facile )
<body>
<form method="post" action="mkdir.php">
<input type="submit" name="ok"/>
</form>
<?php
if(isset($_POST['ok']))
{
if(@mkdir ("A/a",0777,true))
{
echo"cela fonctionne";
}
else
{
echo"cela ne fonctionne pas";
}
}
?>
</body>
Merci d'avance et bonne soirée et désoler si je viens souvent demander de l'aide !
A voir également:
- Sécuriser un dossier créer avec mkdir
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un lien pour partager des photos - Guide
- Dossier appdata - Guide
- Créer un compte gmail - Guide
1 réponse
Salut,
Tu peux bloquer l'accès via HTTP grâce à un .htaccess contenant seulement « deny from all ».
Ce .htaccess doit se placer dans le dossier contenant tous les dossiers des membres.
Par exemple :
De cette manière, il ne sera pas possible d'accéder aux images via http://example.com/images/private/membre_1/fichier.png
L'accès est seulement bloqué par HTTP !
Tu peux donc toujours accéder aux fichiers par PHP et les afficher au navigateur, le PHP te permettra de contrôler l'accès.
Par exemple :
Tu peux bloquer l'accès via HTTP grâce à un .htaccess contenant seulement « deny from all ».
Ce .htaccess doit se placer dans le dossier contenant tous les dossiers des membres.
Par exemple :
/ - images/ - - private/ - - - .htaccess <--- Ici le « deny from all » - - - membre_1/ - - - - * - - - membre_2/ - - - - * - - - membre_3/ - - - - * - - image_publique.png - - image_publique2.jpg - index.php - page.php
De cette manière, il ne sera pas possible d'accéder aux images via http://example.com/images/private/membre_1/fichier.png
L'accès est seulement bloqué par HTTP !
Tu peux donc toujours accéder aux fichiers par PHP et les afficher au navigateur, le PHP te permettra de contrôler l'accès.
Par exemple :
<?php
// Fichier: image.php
// Ex. d'appel: example.com/image.php?file=nom.png
session_start();
if(isset($_SESSION['user_id']) && isset($_GET['file'])) {
// Si le membre est connecté et qu'un fichier est indiqué
// Définir le dossier dans une variable
$path = 'images/private/membre_' . $_SESSION['user_id'] . '/';
// Sécurité pour éviter de remonter l'arborescence avec « .. »
$fileinfos = pathinfo($_GET['file']);
$filename = $fileinfos['basename'];
if(file_exists($path.$filename)) {
header('Content-type: image/'.$fileinfos['extension']);
readfile($path.$filename);
} else {
header('HTTP/1.1 404 Not Found');
include('404-notfound.html');
}
} else {
header('HTTP/1.1 401 Unauthorized');
include('401-unauthorized.html');
}