Datei vorhanden im Internet?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Datei vorhanden im Internet?

Beitrag von NicTheQuick »

Prinzipiell können Dateien auch geschützt sein, sodass du sie nur herunterladen kannst, wenn du authentifiziert bist. Das geht ohne Cookies am einfachsten mit BasicAuth, und mit Cookies auf alle anderen erdenklichen Weisen. Und das wurde in meinem Beispiel ja auch nicht betrachtet. Wenn du also versuchst herauszufinden, ob eine Datei in deinem Google Drive liegt, indem du den Link angibst, dann funktioniert das so auch nicht. Dann wird es erst richtig kompliziert und du musst dich mit APIs auseinandersetzen.
Bild
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Datei vorhanden im Internet?

Beitrag von TroaX »

Eine allgemeingültige Lösung gibt es da sowieso nicht. Im Internet redet man in der Regel auch nicht von Dateien, sondern von Ressourcen. Es heißt ja auch URL und nicht UFL ;)

Ressourcen werden erst zu einer Datei, wenn der Client aus den binär übertragenen Daten eine Datei macht. Dateien können durch serverseitige Programmierung einfach wegabstrahiert werden. Die Avatare hier im Forum zum Beispiel werden nur an Hand der Benutzer-ID identifiziert. Irgendwie schienen aber die Entwickler ganz pfiffige Lümmel sein zu wollen und denken sich, potenzielle Angreifer durch einen generischen Tail mit False-Positives zu fluten (watt für eine dämliche Idee xD). Auf jeden Fall kannst du an Hand der URL nicht einmal darauf schließen, wo genau die Datei liegt. Nur das Script weiß es, öffnet die Datei, sendet diese binär an den Client und durch die Daten im Response-Header denkt ein valider Client, es wäre eine Datei und macht daraus eine. Der Webserver hat aber die Datei nie gesehen oder angepackt. Der hat nur den Datenverkehr zwischen Browser und Script-Interpreter durchgeschliffen. Folglich ist dieses Script natürlich auch für den HTTP Statuscode verantwortlich. Wenn also eine Datei nicht existiert, wird ein fauler Entwickler trotzdem 200 zurückliefern. Denn 404 muss er implementieren. 200 macht er automatisch xD

Und nicht zu vergessen das Rewriting, bei der die url https://exam.ple/index.php?mod=news&article=15 für die Suchmaschinenoptimierung zu http://exam.ple/news/15.html gemacht wird. Und die 15.html existiert dabei garantier nicht auf dem Server. Code 200 bekommste trotzdem zurück. ;)
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Datei vorhanden im Internet?

Beitrag von Benubi »

Du kannst die Existenz prüfen, aber die Dateigröße mit 100% Sicherheit ermitteln mag manchmal nicht möglich sein, selbst bei statischen Inhalten. Diese könnten ja in einer DB/über eine Skript-Schnittstelle nur zugänglich sein welche dann die Inhalte wieder "dynamisch" machen würde. Dann kann es Proxies geben, dynamische Kompression oder sowas.

Ach, und fiese Skripte können leider auch entscheiden immer ein 200 Status zurrückzugeben, wenn sie eine 404 Seite anzeigen mit ner hübschen Flash Animation oder was gerade so angesagt ist - weil sonst würde der Browser doch nur die Standard Fehlermeldung zurrückgeben und nicht die hübsche Animation (Voreinstellung) ;)

Ich vermute daß eine HTTP-basierende Schnittstelle wie WebDAV zuverlässiger sein könnte, aber das hat ja auch nich jeder Server eingeschaltet (verständlicherweise).
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Datei vorhanden im Internet?

Beitrag von TroaX »

Benubi hat geschrieben: 07.12.2022 15:00Ach, und fiese Skripte können leider auch entscheiden immer ein 200 Status zurrückzugeben, wenn sie eine 404 Seite anzeigen mit ner hübschen Flash Animation oder was gerade so angesagt ist - weil sonst würde der Browser doch nur die Standard Fehlermeldung zurrückgeben und nicht die hübsche Animation (Voreinstellung) ;)
Das ist nur noch Contentless der Fall. Man kann bei einem 404 ganz normales Markup zurückliefern. ;)

Aber WebDAV ist keine schlechte Idee. WebDAV ist speziell für Dateien da und eine Sperre lässt sich durch eine Teil- oder Vollimplementierung in einer Skript bzw. Programmiersprache, die auf dem Webserver aufbaut, umgehen. Nextcloud lässt grüßen. Das Ding läuft auch theoretisch bei jedem Hoster. Aber wenn man eher die Existenz auf einem fremden Server prüfen will, hilft einem WebDAV auch nur weiter, wenn es auf dem Server aktiv ist.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Antworten