Sichere Bildverarbeitung

MsvP@habdichliebhasi

Erfahrenes Mitglied
Guten Tag zusammen,

ich arbeite derzeit an einem kleinen Galerie-Script bei dem User ihre Bilder hochladen können.

Derzeit läuft das so, dass direkt beim Speichern des hochgeladenen Bildes Thumbnails angelegt werden. Außerdem können auch "gesperrte" Bilder via URL-Aufruf angesehen werden. Das ganze System möchte ich jetzt gern optimieren.

Hierzu brauche ich Ideen-Anstöße, da ich nicht sicher, was die richtige Herangehensweise ist.

Hier meine bisherigen Überlegungen:

- Bilder die nicht freigeschaltet wurden in einen per htaccess geschütztes Verzeichnis packen (allerdings, könnte dann wahrscheinlich ein Admin die Bilder auch nicht sehen.. schon schwierig)
Wie schaffe ich es, dass Bilder nicht geöffnet werden können, via URL-Aufruf?

- Bilder nicht mehr direkt als Thumbnails speichern und via URL aufrufen, sondern dazwischen ein PHP-Script schalten.
Ich rufe dann wahrscheinlich /image.php auf wodurch das jeweilige Bild erst in diesem Moment erzeugt wird, bzw. wenn es schonmal erzeugt wurde aus einem tmp Verzeichnis geladen wird.
Wie müsste so ein Script-aufgebaut sein? Ist so ein Script sinnvoll? Auch wenn z.B. 100 Bilder pro Seite angezeigt werden? Oder wird dadurch die extrem Verarbeitung langsamer?

Danke für eure Hilfe.
Micha
 
Hallo Micha,

Mir fallen zwei Möglichkeiten ein:
- in eine Datenbank speichern
- verschlüsselt ablegen

Die Variante, dass beim Upload ein Thumbnail erzeugt wird finde ich eigentlich gar nicht schlecht (oder nach Freischaltung).
Habe zwar keine Erfahrung damit, kann mir aber gut vorstellen, dass es ansonsten doch eher lang geht bei einer Seite mit vielen Fotos.

Gruss DexXxtrin
 
Hey DexXx, danke für deine Antwort.

Okey, mit Bild speichern in DB bzw. verschlüsseltem ablegen der Bilder kenne ich mich leider noch nicht aus.
Hast du da mal einen kleinen Schubser in die richtige Richtung?

Okey, ich hatte gedacht, dass es vielleicht auch zur Sicherheit beitragen könnte, da ich dann per PHP-Script verhindern könnte dass manche User bestimmte Bilder sehen können. Hab mal vor einiger Zeit so ein Script gebaut, dass die Bilder on-the-fly erzeugt hat.

Lg
Micha
 
Hi Micha,

also wenn du die Bilder in ein "geschütztes" Verzeichnis legst, dann sind sie direkt nicht mehr aufrufbar.

Du kannst aber eine Seite erstellen die man nur erreicht wenn man sich irgendwo angemeldet/eingeloggt hat (als Admin). Auf dieser Seite werden dann alle Bilder angezeigt und der Admin kann sie freischalten, Thumbs erzeugen, sie wieder löschen, ...

Die Bilder in der Datenbank zu speichern halte ich für keine gute Idee da es die Datenbank ziemlich schnell ziemlich aufbläht.
 
Hey Tombe,

aber wenn ich das Verzeichnis schütze - kann ich dann immer noch die Bilder für einen Administratoren ausgeben? Oder kann HTML / PHP dann auch nicht darauf zugreifen?

Lg
Micha
 
Die Dateien sind dort nur vor direktem Zugriff "von außen" geschützt. Du kannst sie also nicht durch Eingabe der URL + Dateinamen anzeigen.

Ein PHP Script aber hat Zugriff. Da du schreibst es gibt einen Admin, gehe ich mal davon aus das man sich als Admin auf deiner Seite anmelden kann/muss.
Wie schon geschrieben machst du die Seite zum Verwalten der Bilder so das sie erst nach Anmeldung erreichbar ist.

Der normale User unterscheidet sich somit vom Admin und bekommt die Bilder nicht angezeigt.
 
Gut das mit der Datenbank stimmt. War halt einfach eine Möglichkeit (nicht die Beste).

Vorab: das geschützte Verzeichnis ist natürlich am einfachsten (und besten?).

Falls du die Bilder einfach nicht aufrufbar machen möchtest, so lang es nicht freigschaltet ist, dann sind Verschlüsselung und Datenbank allerdings auch Möglichkeiten.
Wenn aber dauernd der Zugriff authentifiziert werden muss, dann ist der Zeitaufwand für die Entschlüsselung jedes Bildes wohl eher zu hoch.

Thumbnails würde ich nach der Freischaltung durch den Admin erstellen...


Zur Verschlüsselung hab ich noch das gefunden: http://www.codediesel.com/php/encrypting-uploaded-files-in-php/
http://www.phpbox.de/php_befehle/crypt.php
 
Zuletzt bearbeitet:
Okey super. Das klingt doch nach einem guten Lösungsansatz. :)
Dann werde ich das mit dem Verzeichnissschutz und PHP-Script mal testen.

Und mir den Link mal zu Gemüte ziehen.

Vielen Dank euch beiden.
 
Zurück