Bug 27415 - MultiUploader berücksichtigt Maximum für Dateigröße nicht
MultiUploader berücksichtigt Maximum für Dateigröße nicht
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC (Generic)
UCS 3.0
Other Linux
: P3 normal (vote)
: UCS 3.0-2
Assigned To: Florian Best
Andreas Büsching
: interim-1
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-31 21:46 CEST by Alexander Kläser
Modified: 2012-09-03 16:37 CEST (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2012-05-31 21:46:20 CEST
Mittels IE8 können Dateien unabhängig von der via UCR Variable
umc/server/upload/max eingestellten Maximalgröße hochgeladen werden. Im Test waren 10MB angegeben, es konnte jedoch eine 20MB große Dateie hochgeladen werden.
Comment 1 Alexander Kläser univentionstaff 2012-06-01 13:08:07 CEST
Die Variable umc/server/upload/max wird im UMC-Server eigentlich korrekt ausgewertet. Vielleicht kann das noch einmal überprüft werden. Ggf. ist es sinnvoll die Datei bereits über Cherrypy (im UMC-Web-Server) oder wenn das nicht funktioniert via Apache zu blocken.

Hier ein Befehl, um Dummy-Dateien zu erstellen:

> dd if=/dev/urandom of=random.dat bs=1024 count=1000
Comment 2 Alexander Kläser univentionstaff 2012-06-01 13:09:54 CEST
Das Problem müsste auch für den (Single-)Uploader zutreffen.
Comment 3 Florian Best univentionstaff 2012-06-01 14:18:49 CEST
Die Auswertung funktioniert wirklich nicht:
curl -b 'UMCSessionId=9ddfb767-a7c0-4114-9f30-8f0604e45f29' --form upload=@./random.dat http://master/umcp/upload/udm/license/import

Im univention/management/console/protocol/session.py handle_request_upload sieht es erstmal richtig aus.
Comment 4 Alexander Kläser univentionstaff 2012-06-11 10:58:22 CEST
Es wäre auch toll, mit diesem Bug eine Prüfung einzubauen, die sicherstellt, dass nach dem Upload /tmp nicht zu 100% voll ist (ggf. über eine UCR-Variable).
Comment 5 Alexander Kläser univentionstaff 2012-06-11 11:00:50 CEST
Wenn ein serverseitiger Fehler beim Upload entsteht, sollte dieser auch entsprechend JavaScript-seitig behandelt und dem Benutzer angezeigt werden.
Comment 6 Florian Best univentionstaff 2012-06-11 17:16:25 CEST
(In reply to comment #1)
> Die Variable umc/server/upload/max wird im UMC-Server eigentlich korrekt
> ausgewertet. Vielleicht kann das noch einmal überprüft werden. Ggf. ist es
> sinnvoll die Datei bereits über Cherrypy (im UMC-Web-Server) oder wenn das
> nicht funktioniert via Apache zu blocken.
Im UMC-web-server wird nun die Dateigröße geprüft. Falls diese zu groß ist wird mit HTTP BAD REQUEST(400) geantwortet.

(In reply to comment #4)
> Es wäre auch toll, mit diesem Bug eine Prüfung einzubauen, die sicherstellt,
> dass nach dem Upload /tmp nicht zu 100% voll ist (ggf. über eine UCR-Variable).
Dies wird mit der neuen UCR Variable umc/server/upload/min_free_space gemacht. Defaultwert ist 50MB.

(In reply to comment #5)
> Wenn ein serverseitiger Fehler beim Upload entsteht, sollte dieser auch
> entsprechend JavaScript-seitig behandelt und dem Benutzer angezeigt werden.
Es wird ein onError event getriggert und die Fehlernachricht des Servers wird in einem popup geöffnet.
Comment 7 Florian Best univentionstaff 2012-06-13 10:22:10 CEST
Changelog erstellt
Comment 8 Florian Best univentionstaff 2012-06-14 09:31:03 CEST
Es wurden noch 2 Dinge vorgenommen:
umc.tools.parseError hat die Fehlernachricht nicht richtig geparsed
die "min_free_space" war einmal zuviel durch 1024 geteilt

Paket baut gerade.
univention-management-console-frontend 1.0.370-12
Comment 9 Andreas Büsching univentionstaff 2012-06-19 08:47:11 CEST
Der UMC Webserver kennt jetzt richtig, dass eine Datei zu groß ist. ich habe es mit dem IE8 und Chrome getestet.

16.05.12 20:14:20.349  MAIN        ( WARN    ) : CPUpload (::1:57867) file of size 780831 could not be uploaded

Im IE8 erscheint allerdings keine Fehlermeldung. dafür sehe ich in dem Entwicklertool in der Konsole:

TypeError: 'getElementsByTagName(...).0.value' ist Null oder kein Objekt
TypeError: 'getElementsByTagName(...).0.value' ist Null oder kein Objekt
Comment 10 Andreas Büsching univentionstaff 2012-06-19 08:50:55 CEST
ChangeLog-Eintrag ist vorhanden, aber bitte den ersten Satz noch einmal prüfen
Comment 11 Florian Best univentionstaff 2012-06-19 12:07:56 CEST
Das sollte (hoffentlich) mit univention-management-console-frontend (1.0.376-2) gefixt sein. Das Paket baut gerade.

(In reply to comment #10)
> ChangeLog-Eintrag ist vorhanden, aber bitte den ersten Satz noch einmal prüfen
Wurde korrigiert.
Comment 12 Alexander Kläser univentionstaff 2012-06-19 13:07:27 CEST
(In reply to comment #11)
> Das sollte (hoffentlich) mit univention-management-console-frontend (1.0.376-2)
> gefixt sein. Das Paket baut gerade.
> 
> (In reply to comment #10)
> > ChangeLog-Eintrag ist vorhanden, aber bitte den ersten Satz noch einmal prüfen
> Wurde korrigiert.

Für die QA: Bitte auch überprüfen, dass Dateien, die zu groß sind und abgelehnt werden, auch nicht in die Dateiliste übernommen werden.
Comment 13 Andreas Büsching univentionstaff 2012-06-20 14:33:32 CEST
(In reply to comment #11)
> Das sollte (hoffentlich) mit univention-management-console-frontend (1.0.376-2)
> gefixt sein. Das Paket baut gerade.
> 
> (In reply to comment #10)
> > ChangeLog-Eintrag ist vorhanden, aber bitte den ersten Satz noch einmal prüfen
> Wurde korrigiert.

Mit IE8 bekommen ich bei Version 1.0.376-6.342.201206201022 noch keinen Dialog, sondern weiterhin die gleiche Fehlermeldung in der Konsole. Ich habe den Windows-Rechner einmal komplett und den Cache von IE gelöscht.
Comment 14 Florian Best univentionstaff 2012-06-21 09:31:09 CEST
(In reply to comment #13)
> Mit IE8 bekommen ich bei Version 1.0.376-6.342.201206201022 noch keinen Dialog,
> sondern weiterhin die gleiche Fehlermeldung in der Konsole. Ich habe den
> Windows-Rechner einmal komplett und den Cache von IE gelöscht.
Das scheitert schon am Dateiupload und hat hiermit nichts zu tun.

> (dojo.io.iframe function: send ) build.js.uncompressed.js +30659
> value = ifd; //html
> if(handleAs != "html"){
>    if(handleAs == "xml"){
>      //  FF, Saf 3+ and Opera all seem to be fine with ifd being xml. We have to
>     //  do it manually for IE6-8.  Refs #6334.
>  …
>     }else{
>         value = ifd.getElementsByTagName("textarea")[0].value; //text
>  …
>     }
Comment 15 Florian Best univentionstaff 2012-06-21 09:41:20 CEST
(In reply to comment #14)
> Das scheitert schon am Dateiupload und hat hiermit nichts zu tun.
Ich habe dafür Bug #27703 erstellt.
Comment 16 Andreas Büsching univentionstaff 2012-06-21 10:14:39 CEST
Solange Bug #25031 nicht gefixt ist kann der hier aber eigentlich nicht auf VERIFIED
Comment 17 Andreas Büsching univentionstaff 2012-06-21 10:27:22 CEST
(In reply to comment #16)
> Solange Bug #25031 nicht gefixt ist kann der hier aber eigentlich nicht auf
> VERIFIED

Es ist jetzt besprochen, dass dieser Bug VERIFIED für Chrome und Firefox ist, da es für die Browser funktioniert. Für IE wird dann Bug #25031 genutzt.
Comment 18 Stefan Gohmann univentionstaff 2012-07-20 15:24:44 CEST
UCS 3.0-2 has been released: 
  http://forum.univention.de/viewtopic.php?f=54&t=1905

If this error occurs again, please use "Clone This Bug".
Comment 19 Alexander Kläser univentionstaff 2012-09-03 16:37:54 CEST
*** Bug 27397 has been marked as a duplicate of this bug. ***