Umgang mit vom Nutzer hochgeladenen Bildern

330
Matthew Yang

Ich benutze Restlet als Backend und versuche, eine kleine Web-App zu erstellen.

Ich erlaube Benutzern, ihre Profilbilder hochzuladen, aber ich weiß nicht, wo sie gespeichert werden sollen. Google fordert mich auf, es im Dateisystem zu speichern und den Bildpfad in der DB zu speichern, was Sinn macht.

Soll ich sie also in einem öffentlichen Webordner ablegen, in dem das Web-Frontend lebt? Aber würde das den Leuten nicht erlauben, auf alle Profilbilder sehr einfach zuzugreifen?

Wenn ich die Bilder nicht im öffentlichen Web-Verzeichnis speichere, wo soll ich sie speichern und wie schütze ich sie?

Mein Server ist Ubuntu Server 12.04 danke im Voraus

BTW: Wie kann ich die Bilder beim Hochladen verarbeiten? Ich versuche, alle Formate in PNG zu konvertieren und deren Größe zu ändern

1

1 Antwort auf die Frage

2
Akam
  1. Überprüfen Sie jedes Bild. Wenn Sie PHP verwenden, können Sie getimagesize () aufrufen.
  2. Sie können Bilder im WWW speichern, die Indexierung von Verzeichnissen kann jedoch deaktiviert werden.
  3. Wenn Sie Bilder außerhalb von WWW speichern, müssen Sie die Bilder intern lesen, indem Sie sie wie eine Datei lesen.
  4. Es ist auch besser, PHP für das Verzeichnis zu deaktivieren, in dem die Bilder gespeichert sind.
  5. Ich würde es auch vorziehen, das Bild beim Laden mit getimagesize () zu überprüfen. Ich bin sicher, wenn Sie Bildbibliotheken verwenden, können Sie ungültige Bildtypen für den Fall erkennen, dass bösartiger Code injiziert wird.
Restlet ist für Java, nichts erwähntes PHP ... # 2 klingt eine gute Option, wenn die Dateinamen zufällig generiert werden. grawity vor 11 Jahren 0
Super, vielen Dank. Nun Restlet ist ein Java-Web-API-Framework, aber PHP-Beispiele liefern einige Einblicke. Ich denke, ich werde die Bilder einfach im WWW-Ordner speichern und das Durchsuchen von Ordnern deaktivieren, einen zufälligen Bildnamen für jede ID generieren und in DB speichern Matthew Yang vor 11 Jahren 0