solution simple pour restreindre l'accès à (certains) téléchargements / téléchargements

11

Situation initiale

Pour un site que je suis en train de configurer, j’examinais tout le domaine de la sécurisation des téléchargements / téléchargements et de la restriction de leur accès en fonction des rôles / capacités des utilisateurs. Bien sûr, j'ai lu certaines des questions précédentes relatives au sujet (général) abordé ici, pour des raisons de référence, les plus importantes / intéressantes que j'ai trouvées:

Notes complémentaires

En règle générale, ce n’est pas une mauvaise idée d’améliorer en outre la sécurité de votre installation Wordpress - par exemple en protégeant votre wp-config.php - vous pouvez et devez faire beaucoup de choses. Il existe une tonne d'informations sur la façon de le faire. Je suis dans le contexte de cette question qui concerne principalement mes uploads et téléchargements.

Les envois Wordpress ne sont pas sécurisés, tout le monde peut parcourir le dossier uploads , à moins que vous ne l'évitiez avec un .htaccess :

Options All -Indexes

Le fichier .htaccess doit être placé dans le dossier uploads . Mais cela ne les sécurise pas vraiment, cela rend simplement plus difficile la recherche des fichiers. De plus, vous pouvez empêcher hotlinking , en restreignant essentiellement l'accès basé sur referrer - bien que ce soit un cas un peu différent, j'ai pensé le mentionner, je ne vais pas en dire plus, vous pouvez trouver beaucoup d'informations à ce sujet.

Bien sûr, il est possible de rendre les publications privées ou de créer un type de publication personnalisé avec les fichiers de modèle appropriés pour rendre ce type de publication privé, mais cela ne sécurise pas vos fichiers. On peut en dire autant pour encapsuler les fichiers dans des conditionnelles telles que is_user_logged_in() ou is_admin() .

En résumé, il existe de nombreux plug-ins qui promettent de sécuriser et de protéger vos fichiers, mais beaucoup d'entre eux ne font que prétendre le faire. Certaines des raisons sont ci-dessus. Je ne fais que souligner cela parce que je suis à peu près sûr que tout le monde ne le sait pas - alors, soyez conscient de cela.

Objectif

Mon intention était de pouvoir limiter l'accès à (certains) téléchargements et à des téléchargements. Et pour que personne ne puisse y avoir accès, pas par hasard, ou si cette personne connaissait le nom du fichier, les fichiers devaient être vraiment privés et sécurisés. Après tout, seules certaines personnes devraient y avoir accès sans exception.

De plus, je n’avais pas besoin de privatiser l’ensemble du site, ce qui serait contre-productif: il est utilisé à des fins de présentation publique. De plus, je souhaitais que la solution soit facilement utilisable, pour la simple raison que certaines des personnes qui l'utilisent ne sont pas exactement des experts en informatique, comme c'est souvent le cas.

Question

D'où la question, existe-t-il un moyen (relativement) simple de restreindre l'accès à (certains) téléchargements et aux téléchargements respectifs? Et comme je l’ai fait, cela signifie un moyen de vraiment les protéger et les sécuriser?

    
posée Nicolai 27.05.2013 - 23:50

1 réponse

8

Par la présente, je réponds à ma propre question, car j’ai trouvé une solution, mais je suis vraiment intéressé par vos opinions à cet égard. Ou peut-être avez-vous une bien meilleure solution. Si oui, j'aimerais vraiment en parler ici.

Résultat de la recherche

Mes résultats de recherche étaient:
    1. récupérez les fichiers en dehors de la racine du document, dossier www ;
    2. interdire tout accès direct au dossier contenant les fichiers;
    3. laisser un script gérer les requêtes sur les fichiers;
Les sources de ces points sont, du moins pour la plupart, incluses dans ma question.

Solution

  1. j'ai installé le plugin » wp-downloadmanager «
    • un dossier appelé files sera créé dans le processus wp-content ;
  2. J'ai ajouté un fichier .htaccess au nouveau dossier files :
    • contenu de .htaccess :
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. J'ai changé une option importante du plugin:
    • l'option que je veux dire est download method ;
    • je l'ai changé en output file ;
  4. J'ai ajouté des fichiers sur l'interface du plugin:
    • il existe une option appelée allowed to download ;
    • qui permet de restreindre l'accès en fonction du rôle / de la capacité de l'utilisateur;
  5. J'ai fait des tests:
    • pas d'accès direct aux fichiers - pas au-dessus de la barre d'adresse ou de wget;
    • les téléchargements publics sont accessibles via leurs permaliens - je choisis "agréables permaliens: oui" et "URL de téléchargement: fichier id" dans le panneau des options - addressbar / wget fonctionne également;
    • protégés, les téléchargements restreints ne sont accessibles que si vous êtes connecté en tant qu'utilisateur avec le rôle / les fonctionnalités appropriés;

Conclusion

Je pense que la solution suit à peu près les résultats de la recherche. En dehors de placer les fichiers à l'extérieur. Mais restreindre l’accès à / protéger le répertoire et laisser un script gérer les demandes de fichiers s’effectue pleinement. La restriction d'accès est gérée par .htaccess et le script dans ce cas est le plugin wp-downloadmanger .

Notes complémentaires

  • il est absolument nécessaire de remplacer le download method par le output file
  • et bien sûr, il est impératif que le fichier .htaccess soit en place

  • pour vérifier le fait que le plug-in assume le rôle du script, consultez wp-downloadmanger.php - à propos des lignes 207 à 227 (version 1.6.1); ceci est considéré comme un point complémentaire aux informations liées

réponse donnée Nicolai 30.05.2013 - 01:37

Lire d'autres questions sur les étiquettes