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

11

Situation initiale

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

Notes complémentaires

Généralement, ce n'est pas une mauvaise idée d'améliorer la sécurité de votre installation wordpress - par exemple en protégeant votre wp-config.php- il y a beaucoup de choses que vous pouvez et devez faire. Il y a une tonne d'informations sur la façon de le faire. Je suis dans le contexte de cette question principalement préoccupée par mes chargements / téléchargements.

Les téléchargements Wordpress ne sont pas sécurisés, tout le monde peut parcourir le uploadsdossier, sauf si vous l'empêchez avec un .htaccess:

Options All -Indexes

Le .htaccessfichier doit être placé dans le uploadsdossier. Mais cela ne les sécurise pas vraiment, il est juste plus difficile de trouver les fichiers. De plus, vous pouvez empêcher hotlinking, en restreignant essentiellement l'accès en fonction de referrer- bien que ce soit un peu différent si je pensais le mentionner, je ne développe pas davantage, vous pouvez trouver de nombreuses informations à ce sujet.

Bien sûr, il a la possibilité de rendre les publications privées ou de créer un type de publication personnalisé avec des fichiers de modèle appropriés pour rendre ce type de publication privé, mais cela ne sécurise pas vos fichiers. La même chose peut être dite pour envelopper les fichiers dans des conditions comme is_user_logged_in()ou is_admin().

Sur un sidenote, il existe de nombreux plugins qui promettent de sécuriser et de protéger vos fichiers, mais beaucoup d'entre eux font simplement semblant de le faire, certaines des raisons sont ci-dessus. Je ne fais que poiter cela parce que je suis presque sûr que tout le monde ne le sait pas - alors, soyez conscient de cela.

Objectif

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

De plus, je n'avais pas besoin de privatiser l'ensemble du site, ce serait en effet contre-productif - il est utilisé à des fins de présentation publique. De plus, je voulais que la solution soit facilement utilisable, pour la simple raison que certaines personnes qui y travaillent 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?

Nicolai
la source
Vous devez ajouter votre solution en tant que réponse au lieu de l'intégrer dans la question.
s_ha_dum
Et veuillez utiliser les lettres majuscules / minuscules appropriées. Se lit comme un chat ...
kaiser
Merci pour la critique constructive, je la modifierai et la restructurerai bientôt.
Nicolai

Réponses:

8

Je réponds par la présente à ma propre question, car j'ai trouvé une solution, mais je suis vraiment intéressé par vos opinions à ce sujet. Ou peut-être avez-vous une bien meilleure solution, si c'est le cas, j'aimerais vraiment en parler ici.

Résultat de recherche

Mes résultats de recherche étaient:
1. obtenir les fichiers en dehors de la racine du document, wwwdossier;
2. interdire tout accès direct au dossier contenant les fichiers;
3. laissez un script gérer les requêtes vers les fichiers;
Les sources de ces points sont - au moins surtout - incluses dans ma question.

Solution

  1. J'ai installé le plugin » wp-downloadmanager «
    • un dossier appelé filessera créé à l'intérieur wp-contentdu processus;
  2. J'ai ajouté un .htaccessfichier dans le nouveau filesdossier:
    • contenu du .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é quelques fichiers sur l'interface du plugin:
    • il y a 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 quelques tests:
    • aucun accès direct aux fichiers - pas sur la barre d'adresse ou wget;
    • les téléchargements publics sont accessibles via leurs permaliens - je choisis »les permaliens sympas: oui« et »l'url de téléchargement: id de fichier« sur le panneau d'options - la barre d'adresse / wget fonctionne aussi;
    • les téléchargements protégés et restreints ne sont accessibles que si vous êtes connecté en tant qu'utilisateur avec le rôle / les capacités appropriés;

Réflexions finales

Je pense que la solution suit à peu près les résultats de la recherche. En plus 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 est complet. La restriction d'accès est gérée par le .htaccesset le script dans ce cas est le plugin wp-downloadmanger.

Notes complémentaires

  • il est absolument nécessaire de changer le download methodàoutput file
  • et bien sûr, il est indispensable que le .htaccessfichier soit en place

  • pour vérifier le fait que le plugin prend en charge le rôle du script, jetez un œil à wp-downloadmanger.php- sur les lignes 207 à 227 (version 1.6.1); il s'agit d'un point complémentaire aux informations liées

Nicolai
la source