Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dateien hinter PHP Passwortschutz schützen

Mitglied: theoberlin

theoberlin (Level 2) - Jetzt verbinden

09.10.2019 um 15:48 Uhr, 404 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
Ransomware Schutz
gelöst Frage von M.MarzSicherheits-Tools6 Kommentare

Hallo zusammen, immer häufiger liest man über Vorfälle über verschlüsselte Festplatten in Betrieben. Normaler weise hat ja jeder große ...

HTML
Intranet Schutz
gelöst Frage von finnhannemannHTML8 Kommentare

Hallo liebe Community, ich habe für mein Unternehmen ein Passwort System installiert. Es läuft auf einem Webserver und ist ...

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: ...

Neue Wissensbeiträge
Off Topic
Noch mehr was ich nicht brauche
Information von brammer vor 2 TagenOff Topic6 Kommentare

Hallo, WOFÜR? WARUM? brammer

Windows Server

Windows Server 2016 Suche nicht funktioniert ist ausgegraut Windows Server 2016 Search not work

Erfahrungsbericht von Wano347 vor 3 TagenWindows Server

Hallo Leute, wir haben vor kurzem ein Problem gehabt: Windows Server 2016 frisch installiert. Nach Checkliste konfiguriert (sieht vor ...

Microsoft Office

Microsoft geht nun rechtlich gegen Lizengo vor - Billig Software

Information von takvorian vor 3 TagenMicrosoft Office9 Kommentare

Hallo zusammen, eben auf CRN gefunden, weis nicht ob das schon wer gepostet hat Microsoft verklagt Lizengo Gruß Tak

Firewall
Übernahme von SOPHOS durch Thoma Bravo
Information von Dilbert-MD vor 4 TagenFirewall3 Kommentare

Kam die Tage per Newsletter: Zitat: " Das Sophos Board of Directors hat gestern bekanntgegeben, dass die Private-Equity-Investment-Firma Thoma ...

Heiß diskutierte Inhalte
Router & Routing
Macht es schon Sinn IPv6 Adressen einzusetzen ?
Frage von mario89Router & Routing11 Kommentare

Hallo Leute, bitte entschuldigt die vielleicht blöde frage, aber ich wollte gerne mal hören, ob im Professionellen Umfeld IPv6 ...

Batch & Shell
Batch - Datei über das Kontextmenü (Senden an) des Windows Explorer umbenennen
gelöst Frage von AlfornoBatch & Shell10 Kommentare

Hallo, ich möchte eine beliebige Word Datei mittels Batch umbenennen. Als Ergebnis soll der neue Dateiname das Änderungsdatum sowie ...

Switche und Hubs
Zwei VLANs über Trunks über zwei Layer3-Switche per Glasfaser verbinden
Frage von FreundlicherSwitche und Hubs9 Kommentare

Hi, leider habe ich weder in der Berufsschule aufgepasst, noch in der Ausbildung das Thema praktisch behandelt (kleiner Betrieb). ...

Batch & Shell
Batch variable in nächste batch mitnehmen
Frage von BytexxBatch & Shell8 Kommentare

Hallo ich möchte ein kleines .bat programm schreiben und habe eine frage. wie kann ich ein installations pfad herrausfinden ...