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:
- Comment protéger les téléchargements, si l'utilisateur n'est pas connecté?
- Comment restreindre l'accès aux fichiers téléchargés?
- Restreindre l'accès aux fichiers d'un dossier spécifique
- Comment rendre le téléchargement multimédia privé?
- Fusion du script de téléchargement PHP dans `functions.php`
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 uploads
dossier, sauf si vous l'empêchez avec un .htaccess
:
Options All -Indexes
Le .htaccess
fichier doit être placé dans le uploads
dossier. 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?
Réponses:
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,
www
dossier;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
files
sera créé à l'intérieurwp-content
du processus;.htaccess
fichier dans le nouveaufiles
dossier:.htaccess
:Options All -Indexes
Order Deny,Allow
Deny from all
download method
;output file
;allowed to download
;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
.htaccess
et le script dans ce cas est le pluginwp-downloadmanger
.Notes complémentaires
download method
àoutput file
et bien sûr, il est indispensable que le
.htaccess
fichier soit en placepour 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éesla source