it-swarm.com.de

Wie kann ich den Zugriff auf hochgeladene Dateien einschränken?

Ich habe einen eingeschränkten Bereich auf einer Website, auf den nur angemeldete Benutzer zugreifen können. Dafür habe ich eine Seitenvorlage mit der Bedingung 'current_user_can ()' erstellt.

Mein Problem ist, dass die an die eingeschränkten Seiten angehängten Dokumente weiterhin für jedermann zugänglich sind, wenn Sie den vollständigen Pfad in die Adressleiste des Browsers eingeben.

Gibt es eine Möglichkeit, den Zugriff auf hochgeladene Dateien einzuschränken?

EDIT: Ich möchte klarstellen, dass die Dateien nur für eingeloggte Benutzer zugänglich sein sollen.

6
mike23

Dies ist eigentlich keine WordPress-Frage - aber Sie können eine Umschreiberegel hinzufügen, um den Zugriff zu verhindern, es sei denn, der Referrer ist Ihre eigene Domain.

[Aktualisieren]

Sie müssen 2 Dinge tun

  1. Fügen Sie eine Umschreiberegel hinzu (entweder direkt mit .htaccess oder mithilfe von WP_rewrite (Codex-Referenz) . Ziel ist es, Anfragen an Ihre Dokumente abzulehnen, die Ihre Domain nicht als Referrer haben. Dadurch wird das Einfügen des Links verhindert in die Adressleiste eines Browsers

  2. Fügen Sie Ihre Download-Links in einen is_user_logged_in(Codex-Referenz) bedingten Block ein, damit sie nur auf der Seite angezeigt werden, wenn der Benutzer angemeldet ist

Ein Codebeispiel ist in einer verwandten Frage verfügbar:

7
anu

Ich würde das Upload-Verzeichnis für ein Verzeichnis außerhalb des WWW-Ordners ändern. Dann "senden" Sie die Datei über eine "Proxy" -Seite. Bei der Überprüfung der Proxy-Seite wird der Benutzer protokolliert und anschließend die Datei mit header ()/readfile () gesendet.

3
Nicolas

Sie können den Hot-Link-Schutz mit einem Webserver Ihrer Wahl verwenden.

Siehe diese StackOverflow-Antwort:
https://stackoverflow.com/questions/1775582/Apache-hotlink-protection-for-download-folder .

Dies verwendet Apache2 .htaccess

Grundsätzlich verweigern Sie den Download, wenn der Nutzer nicht von einer Seite Ihres Blogs kommt!

1
keatch

Das Plugin nur für registrierte Benutzer überprüft lediglich, ob ein Besucher angemeldet ist, bevor der Inhalt Ihrer Seite angezeigt wird. Der Zugriff auf Ihre Dateien über einen Browser wird vom Server gesteuert.

Probieren Sie das WP Plugin AskApache Password Protect - http://wordpress.org/extend/plugins/askapache-password-protect/

Dies funktioniert natürlich nur, wenn Ihr WordPress-Blog auf einem Apache-Server gehostet wird.

0
thetitan