web-dev-qa-db-fra.com

Comment restreindre l'accès aux fichiers téléchargés?

J'ai un espace restreint sur un site Web accessible uniquement aux utilisateurs connectés. Pour cela, j'ai créé un modèle de page avec une condition 'current_user_can ()'.

Mon problème est que les documents joints aux pages à accès restreint restent accessibles à tous si vous indiquez le chemin complet dans la barre d'adresse du navigateur.

Existe-t-il un moyen de limiter l'accès aux fichiers téléchargés?

EDIT: Je tiens à préciser, les fichiers doivent être accessibles uniquement aux utilisateurs connectés.

6
mike23

Ce n'est pas vraiment une question WordPress - mais vous pouvez ajouter une règle de réécriture pour empêcher l'accès à moins que le référent ne soit votre propre domaine.

[Mettre à jour]

Vous aurez besoin de faire 2 choses

  1. Ajoutez une règle de réécriture (soit directement avec .htaccess, soit en utilisant WP_rewrite (référence du Codex) . Le but ici est de refuser les demandes adressées à vos documents pour lesquels votre domaine n’est pas référencé. Cela empêche les personnes de coller le lien. dans la barre d'adresse d'un navigateur

  2. Enveloppez vos liens de téléchargement dans un is_user_logged_in(référence du Codex) conditionnel - ainsi, ils ne s'afficheront sur la page que si l'utilisateur est connecté

Un exemple de code est disponible dans une question connexe:

7
anu

Je voudrais changer le répertoire de téléchargement pour un en dehors du dossier www. Ensuite, vous "envoyez" le fichier en utilisant une page "proxy". La page de proxy vérifie si l'utilisateur est connecté puis envoie le fichier en utilisant header ()/readfile ().

3
Nicolas

Vous pouvez utiliser la protection de liaison chaude en utilisant le serveur Web de votre choix.

Voir cette réponse StackOverflow:
https://stackoverflow.com/questions/1775582/Apache-hotlink-protection-for-download-folder .

Ceci utilise Apache2 .htaccess

En gros, vous refusez le téléchargement, si l'utilisateur ne vient pas d'une page de votre blog!

1
keatch

Le plug-in utilisateur enregistré uniquement cherche uniquement à s’assurer que le visiteur est connecté avant de visualiser le contenu de votre page. L'accès à vos fichiers via un navigateur est contrôlé par le serveur.

Vous devriez essayer le plugin WP AskApache Password Protect - http://wordpress.org/extend/plugins/askapache-password-protect/

Bien sûr, cela ne fonctionnera que si votre blog WordPress est hébergé sur un serveur Apache.

0
thetitan