Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Dateien verschlüsselt speichern (https://boardunity.de/dateien-verschl-sselt-speichern-t1800.html)

Fabchan 02.05.2004 23:04

Dateien verschlüsselt speichern
 
Hi Leute.
Ich programmiere zurzeit eine Bildergalerie mit PHP/MySQL.
Nun stehe ich vor der Frage, wie ich die Bilder am besten speichern soll, wenn
man davon ausgeht, dass manche von ihnen nicht für jeden zugänglich sein sollen. Soviel steht fest: Alle Dateien bekommen einen zufälligen MD5-Wert als Dateinamen, damit keine vorhanden Dateien überschrieben werden.

1. Modell:
Bild-Verzeichnis mit .htaccess schützen und diese nur über den Umweg einer PHP-Datei an den Browser weiterleiten.

2. Modell:
Inhalt der Bilddatei in PHP-Dateien speichern nach folgendem Schema:
PHP-Code:

<? /*Dateiinhalt*/ ?>

Den Dateiinhalt am besten noch mit base64_encode() verschlüsseln, um keine Parse Errors zu erhalten, wenn man die PHP-Datei doch mal direkt aufrufen sollte.
Nachteil:
Die Methode mit base64_encode() benötigt mehr Speicherplatz und ist ein weniglangsamer, dafür wohl neben MySQL am sichersten.

3. Methode:
Bilder ausserhalb des Webroots zu speichern und anschließend per PHP an den Clienten geben.

4. Methode:
Speicherung in einer Datenbank, in diesem Fall MySQL.
Nachteil:
Speicherintensiv, hohe Serverauslastugn, Datenbanken bieten oft nur begrenzten Speicherplatz.

Was meint ihr, lohnt es sich, mehrere Methoden in das Skript (das ich eventuell auch mal veröffentlichen will, falls es denn jemals soweit kommt!) einzubinden? Welche Methode haltet ihr für am sinnvollsten?

exe 02.05.2004 23:14

Ich würde die Bilder ausserhalb des DOCUMENT_ROOT speichern. Damit hast du erstens schonmal gewährleistet das sie über HTTP nicht erreichbar sind.
Da ich davon ausgehe das das Script auf einem Linux-System laufen soll kannst du zusätzlich noch die Zugriffsrechte über das Dateisystem so einschränken das nur der Webuser, also deine PHP-Scripts, lesend und schreibend auf die Bilddateien zugreifen darf, womit du gleichzeitig sicherstellst das keine anderen User auf dem gleichen Server deine Bilder auslesen, sollte die PHP-Installation potentielle Sicherheitslücken aufweisen (keine open_basedir Einstellung auf einem Shared Hoster beispielsweise).
Das Ganze wäre eine relativ simple aber doch recht wirksame Methode deine Bilddateien zu schützen, alles andere wäre, IMHO, zuviel Aufwand.

Fabchan 02.05.2004 23:35

Ich habe auf meinem Webserver leider keine Möglichkeit, außerhalb des DOCUMENT_ROOT zu speichern, weil ich den Account nicht selbst besitze und nur FTP-Zugriff besitze. Etwa 5 Domains zeigen auf das Document-Root. Irgendwann komme ich vielleicht mal dazu, aber es gibt ja noch andere Leute, denen diese Möglichkeit auch fehlt. Ich denke, ich werde (vorraussichtlich) ruhig verschiedene Speichermöglichkeiten mit anbieten.

exe 03.05.2004 13:03

Alternativ kannst du das Verzeichniss, auch wenn es innerhalb des DOCUMENT_ROOT liegt, auch via htaccess absperren.
Einfach eine .htaccess mit Inhalt "deny from all" in das Verzeichnis legen und schon ist es dicht.

Fabchan 03.05.2004 13:59

Hast wohl recht, wahrscheinlich mache ich mir zuviel Gedanken!
Bei Textbasierenden Skripten würde ich die ASCII-Datenbank allerdings
vielleicht doch als .php speichern!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25