Node.js und Bilddateien ueber Webserver?
Ich benutze node.js und express als webserver. Wenn Leute wissen in welchen Ordner auf meinem Webserver Bilder sind koennen die direkt ueber die URL das Bild abrufen, weil in der HTML Seite welche der Webserver zurueck gibt stehen in den IMG Tags die direkten URLs zu den Bildern.
Wenn ich will kann ich zwar im Express Router die IP Adresse von jeder Anfrage checken und nur bestimmten ip adressen erlauben die HTML Seite zu bekommen, aber wie gesagt kann jeder ueber die direkten Links die Bilder abrufen, weil da ist irgendwie kein router dazwischen.
Wie kann man das Problem loesen das auch dir Bilder nur an erlaubte IP Adressen gesendet werden?
Welchen Sinn sollte es machen Browsern die Anzeige der Bilder anzuzeigen die ja in der Website auch angezeigt werden sollen.
ich frage mich was deine frage fragen will
2 Antworten
Da der Browser ja die Bilder anzeigt und anfordert ob alleine oder innerhalb einer Seite ist das ja quasi das gleiche.
Wenn du die Bilder für bestimmte IPs blockiert, dann blockiert du ja auch die Website die der User nutzten soll
Da der Code im Browser aber sichtbar ist für jeden kann dies also jede genauso.
Und im übrigen braucht man dazu kein Note.js.
Könnte man mit PHP einfacher und ohne sichtbaren Code des Users.
Es geht aber darum über IP zu schützen.
Da die IP in beiden Fällen (nur Bild) oder In der Website die gleiche ist kann man dadurch ja den Browser nur generell für alles oder nichts ausschließen
du kannst die als file lesen und z.b. mit einem login vorher checken und dann als bild auslieferen mit dem entsprechenden mimetype. das bild muss dann natürlich in einen nicht public bereich , also nicht da wo du die CSS und Client Javascripts hast .
header("Content-type: image/jpeg") und dann entsprechend die datei senden
kommt halt genau darauf an was du machen willst und warum
man kann die bilder auch in einer datenbank halten und dann mti dem header senden etc .
jein , klar kann man die datei z.b. hinter login oder sonstige packen , darf halt nur nicht im public bereich sein und das node.js läd es als datei von einem sonst nciht erreichbaren ort , checkt den zugriff oder was auch immer und sendet das mit mime type als header und danach pusht es die datei .
praktisch so wie man ein payload hinter einer paywall halt auch schützt .