Je vais essayer de déterminer comment protéger le répertoire d'un utilisateur non autorisé ou non authoriqué pour télécharger des fichiers. Merci à l'avance. P>
4 Réponses :
.htaccess est votre meilleur ami. Mettre nier de tout dans ce fichier .htaccess. Ou si vous ne voulez pas utiliser le fichier .htaccess chiffrer et changer tout le temps le chemin de téléchargement (lol!). P>
Vous devriez développer cette réponse. Ce n'est pas très utile pour le moment.
Vous avez raison - mais je ne veux pas supprimer ma réponse. Que dois-je faire?
Mettez un fichier .htaccess dans le répertoire avec les fichiers, avec le contenu suivant puis crée un script qui utilise par exemple lecturefile () pour servir le fichier si l'utilisateur est autorisé. P> P>
Je suppose que vous avez un script d'utilisateurs / login quelque part qui authentifie un utilisateur? Utilisez des règles de réécriture .htaccess pour transférer la demande de fichier via un script PHP qui vérifie une variable de session si l'utilisateur est connecté, renvoie ensuite le fichier.
Quelque chose du wapk: p>
.htaccess RewriteEngine on RewriteRule ^(.*).(pdf|exe|doc|whatever)$ some-script.php?file=$1.$2 [L] <?php if(loginCheck()) //function somewhere that checks session if user is logged in { return fopen('../files/' . $_GET['file']); //open and return the requested file }
Pas important, mais elk code> devrait être
iLK code>. ;-)
Vous ne pouvez pas trouver un bon duplicata, mais une petite recherche apportera des résultats comme celui-ci PHP Protect A Dossier
Il existe un moyen simple de restreindre l'accès des dossiers en fonction de l'autorisation de session PHP à l'aide de PHP. Cela nécessite de créer des fichiers de stub pour des sessions autorisées valides (et de l'automatisation de leur suppression). Dans PHP, vous faites: p>
RewriteCond %{HTTP_COOKIE} PHPSESSID=(\w+) RewriteCond ../tmp/access-%1 -f RewriteRule ^(.+)$ $1 [L] RewriteRule .+ /deny [L]
Merci! C'est une bonne idée. J'ai adopté cela et modifié pour répondre à mes besoins, mais le noyau est toujours le même que dans cette excellente réponse!