FileUpload und Sicherheit

Status
Nicht offen für weitere Antworten.
T

theomega

Gast
Hallo Leute,
ich möchte es meinen Benutzern ermöglichen eie Art Avatar zu ihrem Benutzer hochzuladen. Die gesamte Anwendung ist ein Servlet (Templates mit Velocity). Ich habe die ganze Sache auch schon mit FileUpload aus den Commons realisiert. Funktioniert auch gut, nur habe ich Sicherheitsbedenken:
Bis jetzt prüfe ich anhand der ContentTypes des FileItems (von FileUpload erstellt), ob es sich um ein Bild handelt. Dachte eigentlich das es sicher ist, nur habe ich jetzt gelesen, dass das ganze ja vom CLient stammt, also problemlos gefälscht werden kann.
Ich habe zusätzlich noch einen Check der Dateiendung gebastelt, das bietet ein bischen zusätzliche Sicherheit, theoretisch ist es aber trotzdem möglich eine falsche Datei hochzuladen.

Wer hat mir einen Tipp, oder seh ich irgendwas falsch?

Gruß und Danke
TO
 

Bleiglanz

Gesperrter Benutzer
genau richtig

da könnte ja jemand ein .jsp hochladen, und wenn du das ausserhalb von /WEB-INF ablegst dann knallts

das mit der Endung ist schon mal ein erster Schritt, ggf. müsstest du einmal mit der java.awt.image oder so versuchen das Bild zu laden, damit dir die Leute keine Shellscripten oder anderes Zeugs unterjubeln

Rechte am Server für das Verzeichnis mit den hochgeladenen Bildern beachten! usw. usf
 
T

theomega

Gast
gut, die dateien müssen wohl oder übel öffentlich zugänglich sein, da sie ja nacher angezeigt werden müssen. Ich habe jetzt noch einen Check über ImageIO drin. Das ding gibt NULL zurück, wenn es das Bild nicht öffnen kann. Vermutlich ist das das meiste was ich tun kann.
Oder wäre es evtl sinvoll noch einen Mime-Check auf dem Server zu machen? So das ich den echten ContentType feststellen kann?

Danke auf jeden Fall
TO
 

Bleiglanz

Gesperrter Benutzer
ists ne linux maschine?

dann lass als cron-job einmal pro Nacht

/usr/bin/file

drüberlaufen und die nicht genehmen einfach löschen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben