gelöst Dateien hinter PHP Passwortschutz schützen

Mitglied: theoberlin

theoberlin (Level 2) - Jetzt verbinden

09.10.2019 um 15:48 Uhr, 1437 Aufrufe, 8 Kommentare

Hallo zusammen,

folgende Ausgangssituation:

Ein Link führt zu einem Verzeichnis mit einer Index.php. Dort wird festgestellt, dass eine Session Variable nicht gesetzt ist und man wird zu einem Login geführt. Nach erfolgreichem Login geht es wieder zurück und man bekommt alle Dateien aufgelistet, welche in diesem Verzeichnis liegen.

Nun zum Problem:
Kennt man den Dateinamen, kommt man durch „https://Blabla.blabla/download/blabla/test.txt&ldquo"

direkt zur Datei ohne das Passwort eingeben zu müssen.

Hat jemand hier einen Lösungsvorschlag außer über ein separates backend zu gehen?

LG
Theo
Mitglied: erikro
09.10.2019 um 15:54 Uhr
Moin,

das Zauberwort heißt htaccess. Guckst Du hier:
https://wiki.selfhtml.org/wiki/Webserver/htaccess

hth

Erik
Bitte warten ..
Mitglied: theoberlin
09.10.2019, aktualisiert um 16:12 Uhr
Moin Erik,
habe ich mir schon fast gedacht, bin aber auf keinen grünen Zweig gekommen.

Zugriff Deny für !Localhost geht ja nicht da in der .php auf den Link geklickt wird und Optionen die den direkten Download verhindern sind mir da nicht bekannt. Verzeichnislisting an sich ist natürlich auch abgeschaltet. Kannst du mir ein Stichwort geben?

Edit: Sehe gerade noch woanders:

https://www.askapache.com/htaccess/

Hotlinking/Refferer. Sehe ich mir mal an.

LG
Theo
Bitte warten ..
Mitglied: erikro
09.10.2019 um 16:13 Uhr
Moin,

Zitat von theoberlin:
Zugriff Deny für !Localhost geht ja nicht da in der .php auf den Link geklickt wird und Optionen die den direkten Download verhindern sind mir da nicht bekannt. Verzeichnislisting an sich ist natürlich auch abgeschaltet. Kannst du mir ein Stichwort geben?

Ich würde die Dateien in ein Unterverzeichnis packen, dann auf der Startseite das Login, der den Zugriff auf das Unterverzeichnis freigibt. Nach dem Login auf die Seite mit dem Listing weiterleiten und gut ist.

hth

Erik
Bitte warten ..
Mitglied: theoberlin
09.10.2019 um 16:23 Uhr
Hi,

aber das behebt ja das Porblem nicht, dass wenn man das Unterverzeichnis mit Datei kennt, ohne Login draufkommt oder habe ich da einen Denkfehler?

lg
Theo
Bitte warten ..
Mitglied: erikro
09.10.2019 um 16:27 Uhr
Nein, wenn in dem Unterverzeichnis ein entsprechendes .htaccess liegt, dann bekommst du ohne Authentifizierung einen Error 401. Sonst wäre das ja sinnbefreit.
Bitte warten ..
Mitglied: 141320
LÖSUNG 09.10.2019, aktualisiert um 16:35 Uhr
Ich würde den Download nicht über einen direkt erreichbaren Link im Webspace realisieren sondern es folgendermaßen machen.
  • Download-Verzeichnis mit einer generellen .htaccess schützen so das ein direkter Zugriff nicht möglich ist / Alternativ das Download-Verzeichnis außerhalb des Webroots platzieren
  • Dann bei Check der Sessionvariablen dem User den Download per php readfile()-Funktion und passendem Header aus dem Dateisystem des Webservers auslesen und an den Browser ausliefern, so ist kein direkter Link mehr möglich und nötig.

Alternativ kannst du natürlich per htaccess und rewrite jegliche Anfrage an ein Download-Verzeichnis an ein Skript umleiten und dann die Session-Variable checken und die Datei ebenfalls pre readfile() an den Browser ausliefern.

Diese Methoden findest du in diversen fertigen Download-Skripts im Web.
Bitte warten ..
Mitglied: erikro
09.10.2019 um 16:39 Uhr
Moin,

Zitat von 141320:

Ich würde den Download nicht über einen direkt erreichbaren Link im Webspace realisieren sondern es folgendermaßen machen.
  • Download-Verzeichnis mit einer generellen .htaccess schützen so das ein direkter Zugriff nicht möglich ist / Alternativ das Download-Verzeichnis außerhalb des Webroots platzieren
  • Dann bei Check der Sessionvariablen dem User den Download per php readfile()-Funktion und passendem Header aus dem Dateisystem des Webservers auslesen und an den Browser ausliefern, so ist kein direkter Link mehr möglich und nötig.

Alternativ kannst du natürlich per htaccess und rewrite jegliche Anfrage an ein Download-Verzeichnis an ein Skript umleiten und dann die Session-Variable checken und die Datei ebenfalls pre readfile() an den Browser ausliefern.

Diese Methoden findest du in diversen fertigen Download-Skripts im Web.

Sag ich doch.

Guck mal hier: https://wiki.selfhtml.org/wiki/PHP/Tutorials/Loginsystem

hth

Erik
Bitte warten ..
Mitglied: LordGurke
LÖSUNG 10.10.2019 um 01:45 Uhr
Im großen und ganzen hast du folgende Möglichkeiten:

a) Du verlagerst die zu herunterladenden Dateien in ein eigenes Verzeichnis und unterbindest per .htaccess alle Zugriffe darauf.
Einfach eine Zeile: "Deny from all".
Bonus: Du verschiebst das Verzeichnis irgendwohin außerhalb deines Document-Root, dann kann kommen wer will - es gibt ja keinen direkten Zugriff darauf.
Alle Anfragen auf die Dateien müssen dann aber durch ein PHP-Script durchgeführt werden, was dann entsprechend die korrekten Content-Type:-Header setzen und die Dateien dann mittels readfile() ausliefern muss.
Problematisch ist das aufgrund der max_execution_time, welche bei sehr, sehr langsamen Downloads dann irgendwann abbricht und der Download ebenfalls endet. Hier kannst du eventuell selektiv für dieses Script die max_execution_time abschalten, wenn das zugelassen wird.
Im Falle von PHP-FPM bzw. FCGI springt möglicherweise noch der Webserver aus dem Gebüsch und bricht das Script nach einem Timeout (meist 300 Sekunden) ab.

Dies ist so mit die simpelste und zugleich sicherste Lösung - aber halt mit dem Nachteil der max_execution_time. Wenn du diese abschalten kannst, wäre das die präferierte Lösung.


b) Du setzt mit dem PHP-Script einen Cookie, welcher nur für die aktuelle Session gültig ist und prüfst dann dessen Existenz mittels .htaccess. Eine wirklich Auswertung/Prüfung gegen eine PHP-Session kannst du damit aber nicht machen - lediglich den Cookie und dessen Inhalt statisch vergleichen.
Das lässt sich daher auch clientseitig ausnutzen, indem ein solcher Cookie natürlich auch ohne Login gesetzt werden kann.
Dafür kannst du den Download ohne PHP-Script umsetzen, durch das die Daten durchfließen müssen und du hast keine Gefahr abbrechender Downloads.

Vorteil: Der Download kann so lange dauern wie er eben dauert, ohne die Gefahr abbrechender Downloads - dafür ist der Schutz für geübtes Personal dann aber auch relativ leicht zu umgehen.
Bitte warten ..
Ähnliche Inhalte
Sicherheits-Tools

USB Dongle zum Schutz von PHP mysql Anwendung

gelöst Frage von rudi52001Sicherheits-Tools2 Kommentare

Hallo zusammen, ich habe Offshore für Kunden eine PHP (Lavarel)/mysql Anwendung programmieren lassen die ich an zwei Kunden ausliefere ...

Windows 7

Schutz vor Ramsoftware

gelöst Frage von stefan00166Windows 79 Kommentare

Liebe User, Ich habe bei mir daheim einen Windows 7 Pc der alt Netzwerkserver missbraucht wird. Darauf sind 2 ...

Exchange Server

Exchange SPAM-Schutz

Frage von padimonuExchange Server11 Kommentare

Hallo Zusammen, wir sind auf der Suche nach einem neuen SPAM Schutz für den MS Exchange. Hier die Eckdaten: ...

PHP

PHP - Datei per Unlink löschen

gelöst Frage von DantarosPHP3 Kommentare

Hallo zusammen, ich habe aktuell ein Problem mit dem Befehlt "unlink". Ich habe ein Uploadformular erstellt und die Bilder ...

HTML

PHP Datei für das ABI

Frage von mrcljnffHTML7 Kommentare

Hallo, ich habe demnächst ABI und muss hier eine Aufgabe lösen auf dich ich seit Wochen keine Antwort finde. ...

Microsoft

Schutz vor Ransomware

Frage von scar71Microsoft7 Kommentare

Hallo zusammen, mich würde interessieren, welche Schutzmechanismen ihr bereits im Kampf/Schutz vor bzg. gegen Ransomware (etc.) im Unternehmen implementiert ...

Heiß diskutierte Inhalte
Notebook & Zubehör
Macbook oder Surface Book 3?
gelöst Frage von FamousDex089Notebook & Zubehör36 Kommentare

Hallo Zusammen :-), ich bin komplett neu in der IT Admin schiene und neu in diesem Forum. Ich habe ...

Switche und Hubs
Kaufberatung (10G) Switche für Unternehmensnetzwerk
Frage von ipzipzapSwitche und Hubs21 Kommentare

Moin, unsere Firma zieht um und am neu renovierten Standort muss/soll alles neu. Auf drei Etagen stehen Racks, in ...

Humor (lol)
So eine Art Jobangebot
Frage von Melvin.van.HorneHumor (lol)20 Kommentare

Moin, ich habe eben eine Zeit damit zugebracht eine GPO für eine Gruppe von Clients zu erstellen. Egal was ...

Windows Server
AD (virtualisiert) und alle angeschlossenen Clients fahren ungeplant herunter
Frage von tobitobsnWindows Server19 Kommentare

Ich habe aktuell ein Problem, dass ein frisch aufgesetzer Hyper-V mit einem virtualisierten AD regelmäßig 1x die Woche herunterfährt ...

Drucker und Scanner
Vorlage Endlospapier Nadeldrucker
Frage von Hanspeter82Drucker und Scanner13 Kommentare

Hallo, hab die Aufagbe bekommen, eine Vorlage zuerstellen bzgl. Druck auf Endlos Papier über einen Nadeldrucker. Habe allerdings kein ...

Windows 10
FritzBox 7590 VPN
Frage von christian295Windows 1013 Kommentare

Hallo Zusammen, wir haben seit einigen Tagen eine neue FritzBox 7590 und wollen mit ShrewSoft 2.2.2 auf Win 10 ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT