Für eine Site, die ich gerade erst aufbaue, habe ich mich mit dem gesamten Bereich des Sicherns von Uploads/Downloads und dem Einschränken des Zugriffs auf diese basierend auf Benutzerrollen fähigkeiten befasst. Natürlich habe ich einige der vorherigen Fragen zum (allgemeinen) Thema hier gelesen, aus Referenzgründen die wichtigsten/interessantesten, die ich gefunden habe:
Im Allgemeinen ist es keine schlechte Idee, die Sicherheit Ihrer WordPress-Installation zusätzlich zu verbessern - zum Beispiel Ihren wp-config.php
zu schützen - es gibt eine Menge Dinge, die Sie tun können und sollten. Es gibt eine Menge Informationen, wie man das macht. Ich mache mir im Rahmen dieser Frage vor allem Sorgen um meine Uploads/Downloads.
Wordpress-Uploads sind nicht gesichert. Jeder kann den Ordner uploads
durchsuchen, es sei denn, Sie verhindern dies mit einem .htaccess
:
Options All -Indexes
Die Datei .htaccess
muss sich im Ordner uploads
befinden. Das sichert sie jedoch nicht wirklich, sondern erschwert lediglich das Auffinden der Dateien. Außerdem können Sie hotlinking
verhindern und den Zugriff auf referrer
grundlegend einschränken - auch wenn das ein bisschen anders ist, wenn ich es erwähne, ich werde es nicht weiter ausführen, finden Sie viele Informationen dazu.
Natürlich besteht die Möglichkeit, Beiträge als privat zu kennzeichnen oder einen benutzerdefinierten Beitragstyp mit geeigneten Vorlagendateien zu erstellen, um diesen Beitragstyp als privat zu kennzeichnen, aber das sichert Ihre Dateien nicht. Gleiches gilt für das Umschließen der Dateien in Bedingungen wie is_user_logged_in()
oder is_admin()
.
Nebenbei bemerkt gibt es viele Plugins, die versprechen, Ihre Dateien sicher und geschützt zu machen, aber viele von ihnen tun nur so, als ob sie dies tun. Einige der Gründe sind oben aufgeführt. Ich habe das nur vorgetäuscht, weil ich mir ziemlich sicher bin, dass es nicht jedem bekannt ist - also sei dir dessen bewusst.
Ich wollte den Zugriff auf (einige) Uploads bzw. Downloads einschränken können. Und um sicherzustellen, dass niemand unerwünschten Zugriff auf sie hat, nicht zufällig oder wenn jemand den Dateinamen kennt, sollten die Dateien wirklich privat und sicher sein. Immerhin sollten nur bestimmte Personen ausnahmslos Zutritt haben.
Außerdem musste ich die gesamte Site nicht privatisieren, was kontraproduktiv wäre - sie wird für öffentliche Präsentationszwecke verwendet. Außerdem wollte ich, dass die Lösung einfach zu bedienen ist, und zwar aus dem einfachen Grund, dass einige der Leute, die damit arbeiten, nicht genau Computerexperten sind, wie es häufig der Fall ist.
Daher die Frage, gibt es eine (relativ) einfache Möglichkeit, den Zugriff auf (einige) Uploads und die jeweiligen Downloads einzuschränken? Und wie ich es getan habe, bedeutet das eine Möglichkeit, sie wirklich zu schützen und zu sichern?
Ich beantworte hiermit meine eigene Frage, weil ich eine Lösung gefunden habe, aber ich bin wirklich an Ihren Meinungen dazu interessiert. Oder vielleicht haben Sie eine viel bessere Lösung, wenn ja, würde ich gerne hier darüber sprechen.
Meine Forschungsergebnisse waren:
1. Holen Sie sich die Dateien außerhalb des Dokumentstamms, www
Ordner;
2. keinen direkten Zugriff auf den Ordner mit den Dateien zulassen;
3. Lassen Sie ein Skript die Anforderungen an die Dateien verarbeiten.
Die Quellen für diese Punkte sind - zumindest größtenteils - in meiner Frage enthalten.
wp-content
wird dabei ein Ordner mit dem Namen files
erstellt..htaccess
-Datei zum neuen Ordner files
hinzugefügt: .htaccess
:Options All -Indexes
Order Deny,Allow
Deny from all
download method
;output file
geändert.allowed to download
;Ich denke, die Lösung folgt ziemlich genau den Forschungsergebnissen. Abgesehen davon, die Dateien außerhalb zu platzieren. Das Einschränken des Zugriffs auf das Verzeichnis/das Schützen des Verzeichnisses und das Verarbeiten von Dateianforderungen durch ein Skript ist jedoch vollständig. Die Zugriffsbeschränkung wird vom .htaccess
übernommen und das Skript ist in diesem Fall das Plugin wp-downloadmanger
.
download method
in output file
zu ändernund natürlich ist es ein muss , dass die .htaccess
-Datei vorhanden ist
um zu überprüfen, ob das Plugin die Rolle des Skripts übernimmt, werfen Sie einen Blick auf wp-downloadmanger.php
- zu den Zeilen 207 bis 227 (Version 1.6.1). Dies ist als Ergänzung zu den verlinkten Informationen gedacht