11
votes

Meilleure stratégie pour protéger les fichiers téléchargeables -PL / mysql Apache2 Server

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.


0 commentaires

4 Réponses :


2
votes

.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!).


2 commentaires

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?



3
votes

Mettez un fichier .htaccess dans le répertoire avec les fichiers, avec le contenu suivant xxx

puis crée un script qui utilise par exemple lecturefile () pour servir le fichier si l'utilisateur est autorisé.


0 commentaires

2
votes

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
}


1 commentaires

Pas important, mais elk devrait être iLK . ;-)



11
votes

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]


1 commentaires

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!