Pour un site que je suis en train de configurer, je me suis intéressé à la sécurisation des téléchargements et à la restriction de leur accès en fonction des rôles et des 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:
En règle générale, il n’est pas mauvais 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 y a une tonne d'informations sur la façon de le faire. Je suis dans le contexte de cette question principalement préoccupé par mes uploads/téléchargements.
Les envois Wordpress ne sont pas sécurisés, tout le monde peut parcourir le dossier uploads
, sauf si vous l’empêchez 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
, restreignant essentiellement l'accès sur la base de referrer
- bien que ce soit un cas un peu différent, je pensais 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 des 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 conditions telles que is_user_logged_in()
ou is_admin()
.
Dans certains cas, il existe de nombreux plug-ins qui promettent de sécuriser et de protéger vos fichiers, mais bon nombre d'entre eux prétendent le faire, certaines des raisons étant 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.
Mon intention était de pouvoir restreindre l'accès à (certains) téléchargements et respectivement aux 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 tout le 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.
D'où la question, existe-t-il un moyen (relativement) simple de limiter l'accès à (certains) téléchargements et aux téléchargements respectifs? Et comme je l'ai fait, cela signifie un moyen de les protéger et de les sécuriser?
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 à cet égard. Ou peut-être avez-vous une bien meilleure solution? Si oui, j'aimerais vraiment en parler.
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.
files
sera créé dans wp-content
dans le processus;.htaccess
au nouveau dossier files
: .htaccess
:Options All -Indexes
Order Deny,Allow
Deny from all
download method
;output file
;allowed to download
;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 fichier est rempli. La restriction d'accès est gérée par le .htaccess
et le script dans ce cas est le plugin wp-downloadmanger
.
download method
en output file
et bien sur c’est un must que le fichier .htaccess
est 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