einfache Lösung zur Einschränkung des Zugriffs auf (einige) Uploads / Downloads

11

Ausgangssituation

Für eine Site, die ich einrichte, habe ich mich mit dem gesamten Bereich der Sicherung von Uploads / Downloads und der Einschränkung des Zugriffs auf diese basierend auf Benutzerrollen / -funktionen befasst. Natürlich habe ich einige der vorherigen Fragen zum (allgemeinen) Thema hier gelesen, aus Referenzgründen die wichtigsten / interessantesten, die ich gefunden habe:

Ergänzende Hinweise

Im Allgemeinen ist es keine schlechte Idee, die Sicherheit Ihrer WordPress-Installation zusätzlich zu verbessern - zum Beispiel Ihre zu schützen wp-config.php- es gibt eine Menge Dinge, die Sie tun können und sollten. Es gibt eine Menge Informationen darüber, wie es geht. Ich bin im Zusammenhang mit dieser Frage hauptsächlich besorgt über meine Uploads / Downloads.

Wordpress-Uploads sind nicht gesichert. Jeder kann den uploadsOrdner durchsuchen , es sei denn, Sie verhindern dies mit .htaccess:

Options All -Indexes

Die .htaccessDatei muss im uploadsOrdner abgelegt werden . Aber das sichert sie nicht wirklich, es macht es nur schwieriger, die Dateien zu finden. Außerdem können Sie verhindern hotlinking, dass der Zugriff auf der Grundlage von eingeschränkt wird referrer- obwohl dies ein etwas anderer Fall ist, dachte ich, ich erwähne es, ich werde nicht weiter darauf eingehen, Sie können viele Informationen darüber finden.

Natürlich besteht die Möglichkeit, Beiträge privat zu machen oder einen benutzerdefinierten Beitragstyp mit geeigneten Vorlagendateien zu erstellen, um diesen Beitragstyp privat zu machen, 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 geben nur vor, dies zu tun. Einige der Gründe sind oben aufgeführt. Ich schreibe das nur aus, weil ich mir ziemlich sicher bin, dass es nicht jedem bekannt ist - also sei dir dessen bewusst.

Zielsetzung

Meine Absicht war es, den Zugriff auf (einige) Uploads bzw. Downloads einschränken zu können. Und um sicherzustellen, dass niemand unerwünscht auf sie zugreifen kann, nicht zufällig oder wenn jemand den Dateinamen kennt, sollten die Dateien wirklich privat und sicher sein. Schließlich sollten nur bestimmte Personen ausnahmslos Zugang haben.

Außerdem musste ich die gesamte Website nicht privatisieren, was kontraproduktiv wäre - sie wird für öffentliche Präsentationszwecke verwendet. Außerdem wollte ich, dass die Lösung leicht zu verwenden ist, aus dem einfachen Grund, dass einige der Leute, die damit arbeiten, nicht gerade Computerexperten sind, wie es oft der Fall ist.

Frage

Daher die Frage, gibt es eine (relativ) einfache Möglichkeit, den Zugriff auf (einige) Uploads und die jeweiligen Downloads zu beschränken? Und wie ich es getan habe, bedeutet das einen Weg, sie wirklich zu schützen und zu sichern?

Nicolai
quelle
Sie sollten Ihre Lösung als Antwort hinzufügen, anstatt sie in die Frage einzubetten.
s_ha_dum
Und bitte verwenden Sie die richtigen Groß- / Kleinbuchstaben. Liest sich wie ein Chat ...
Kaiser
Vielen Dank für die konstruktive Kritik, ich werde sie bald bearbeiten und umstrukturieren.
Nicolai

Antworten:

8

Ich beantworte hiermit meine eigene Frage, weil ich eine Lösung gefunden habe, aber ich bin wirklich interessiert an Ihrer Meinung dazu. Oder vielleicht haben Sie eine viel bessere Lösung, wenn ja, würde ich gerne hier darüber sprechen.

Forschungsergebnis

Meine Forschungsergebnisse waren:
1. Holen Sie sich die Dateien außerhalb des Dokumentstamms, wwwOrdner;
2. den direkten Zugriff auf den Ordner mit den Dateien untersagen;
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.

Lösung

  1. Ich habe das Plugin » wp-downloadmanager « installiert
    • ein Ordner mit dem Namen fileswird erstellt innerhalb wp-contentdes Prozesses;
  2. Ich habe a hinzugefügt .htaccess habe dem neuen filesOrdner Datei :
    • Inhalt der .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Ich habe eine wichtige Option des Plugins geändert:
    • Die Option, die ich meine, ist download method ;
    • Ich habe es geändert in output file;
  4. Ich habe einige Dateien über die Plugin-Oberfläche hinzugefügt:
    • Es gibt eine Option namens allowed to download ;
    • Dies ermöglicht es, den Zugriff basierend auf der Benutzerrolle / -fähigkeit einzuschränken.
  5. Ich habe einige Tests durchgeführt:
    • Kein direkter Zugriff auf die Dateien - nicht über die Adressleiste oder wget;
    • Öffentliche Downloads können über ihre Permalinks erreicht werden - ich wähle »nette Permalinks: Ja« und »Download-URL: Datei-ID« im Optionsfeld - Adressleiste / Wget funktioniert auch;
    • Auf geschützte, eingeschränkte Downloads kann nur zugegriffen werden, wenn Sie als Benutzer mit der richtigen Rolle / den richtigen Funktionen angemeldet sind.

Abschließende Gedanken

Ich denke, die Lösung folgt ziemlich genau den Forschungsergebnissen. Abgesehen davon, dass die Dateien draußen platziert werden. Die Einschränkung des Zugriffs auf / das Schutz des Verzeichnisses und die Verarbeitung von Dateianforderungen durch ein Skript ist jedoch vollständig. Die Zugriffsbeschränkung wird von der behandelt .htaccessund das Skript ist in diesem Fall das Pluginwp-downloadmanger .

Ergänzende Hinweise

  • es ist absolut notwendig , um die Änderung download methodzuoutput file
  • und natürlich ist es ein Muss, dass die .htaccessDatei vorhanden ist

  • wp-downloadmanger.phpUm zu überprüfen, ob das Plugin die Rolle des Skripts übernimmt, schauen Sie sich die Zeilen 207 bis 227 (Version 1.6.1) an. Dies ist als ergänzender Punkt zu den verknüpften Informationen gedacht

Nicolai
quelle