2016-04-18 25 views
0

wir müssen ein Feature-Benutzerprofil Image Upload in unserer Webanwendung implementieren. Der Benutzer kann sein Profilbild hochladen.Image Upload Sicherheit - Benutzerprofil

Nach dem Hochladen des Images wird es in DB2 DB gespeichert. Es wird nur für den Benutzer gerendert, der das Image nach der Anmeldung hochgeladen hat. Technologie-Stack -> J2EE, AIX, DB2.

Wir haben eine seltsame Beschwerde von unserer Sicherheitsabteilung, dass diese Funktion gelöscht werden muss, da der Benutzer einen Virus hochladen kann und dies den Server infizieren wird!

Ich verstehe nicht, wie ein Benutzer den Virus hochladen wird, am Ende des Tages ist der Virus ein Programm, das ausgeführt werden muss, oder? zweite Sache, die Plattform ist UNIX-AIX ,,, selbst wenn Benutzer eine Malware hochgeladen wird der Server nicht infiziert werden, oder? Letzte Sache, gibt es eine Möglichkeit, dass Benutzer von XSS infiziert werden, wenn eine JS-Datei anstelle von Bild hochgeladen wird, aber ich kann sehen, dass dies in unserem Fall nicht gültig ist, da nur der Benutzer das Bild hochladen kann und es wird gerendert nur für den Benutzer.

Ist mein Verständnis richtig?

+0

Welches Bild hochladen verwenden Sie? – RussellHarrower

Antwort

0

Nein, es ist tatsächlich möglich, ausführbaren Code in Bilddateien auszublenden. Und wenn der Benutzer das Bild rendert, ist es abhängig von der Serverkonfiguration möglich, dass der Code innerhalb des Bildes ausgeführt werden kann. Siehe zum Beispiel http://hackaday.com/2014/11/15/hiding-executable-javascript-in-images-that-pass-validation/ Und in Google für gif ausführbaren suchen, png ausführbare usw.

Ich habe Beweise Konzepte gesehen, die (auch rm erlauben, ausführbare Windows-Dateien wie diese http://www.codeproject.com/Articles/9791/Hiding-EXE-Data-Within-GIF-Data, Batch-Befehle und andere Sachen für Linux laufen - fr *), PHP-Code und viele andere.

Sie müssen entweder das Bild überprüfen oder sicherstellen, dass das Bild in ein sicheres Format konvertiert wird, bevor es gerendert wird.

+0

1) Es ist Benutzerprofil Bild, so erwarte ich nicht, dass Benutzer hochladen und ausführbare Datei, um seine Maschine zu verletzen. weil es nur für ihn gerendert wird. 2) die Technologie ist j2ee nicht php, dies wird einen Unterschied machen ich denke 3) Sie erwähnten, dass wir das Bild überprüfen müssen oder sicher sein, dass das Bild in ein sicheres Format konvertiert wird, bevor es gerendert wird, wie man das macht? – user1511524

+0

1. Die Datei ist nicht genau für den Zweck der Verletzung seiner Maschine erstellt, die Datei kann zum Beispiel Berechtigungen zu skalieren oder etwas auf dem Server ausführen. 2. Nein, es macht keinen Unterschied. Java wird auch auf der Serverseite ausgeführt. Dies sind Links, die Sie überprüfen können, um zu überprüfen, ob diese Dinge mit Windows und Javascript möglich sind, aber es bedeutet nicht, dass es nicht die gleiche Technik verwendet werden kann, um ähnliche Ziele zu erreichen Am einfachsten ist es, eine Image-Bibliothek zu laden, in der das Ding bereits eingebaut ist, oder zu lernen, wie man mit dem Inhalt von Bildern umgeht und ein Rendering macht. – bns