Bug 28146 - Fehlendes Escaping auf JavaScript-Seite
Fehlendes Escaping auf JavaScript-Seite
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC (Generic)
UCS 3.0
Other Linux
: P3 normal (vote)
: UCS 3.1
Assigned To: Dirk Wiesenthal
Lukas Walter
: interim-3
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-08-06 11:17 CEST by Alexander Kläser
Modified: 2012-12-12 21:07 CET (History)
4 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): Troubleshooting
Max CVSS v3 score:


Attachments
Screenshot (19.63 KB, image/png)
2012-08-06 11:17 CEST, Alexander Kläser
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2012-08-06 11:17:23 CEST
Created attachment 4575 [details]
Screenshot

Derzeit fehlt in UVMM noch ein entsprechendes Escaping der HTML-Sonderzeichen
(siehe Screenshot).
Comment 1 Alexander Kläser univentionstaff 2012-08-06 11:24:36 CEST
In der JavaScript-Funktion vncLink() wird auch kein Escaping verwendet.
Comment 2 Alexander Kläser univentionstaff 2012-08-06 11:37:18 CEST
Escaping kann durchgeführt werden über dojox.html.entitites.encode:

http://livedocs.dojotoolkit.org/dojox/html/entities/encode
Comment 3 Philipp Hahn univentionstaff 2012-08-07 13:42:46 CEST
Im Rahmen von Bug #27189 wurde folgendes korrigiert:
- VNC-Links
- Löschen von Instanzen: Instanzname und Volume-Namen

Offen bleibt der Tab-Name und ggf. weitere Problemstellen.
Comment 4 Philipp Hahn univentionstaff 2012-10-25 09:31:15 CEST
Die UVMM-Module sind mit Bug #27189 abgedeckt.
Was bleibt ist das generische Probelm in UMC, daß dort die Zeichenkette 1:1 im HTML-Code verwendet wird, ohne diese zu escapen.

ucs/virtualization/univention-virtual-machine-manager-daemon/umc/js/uvmm/DomainPage.js:445
  this.moduleWidget.set( 'title', 'UVMM: ' + this._domain.name );

Ein Escaping an der Stelle wäre zwar das Einfachste, aber damit würde da Problem in anderen Modulen bestehen bleiben. Nach Rücksprache mit Alex deswegen → UMC
Comment 5 Alexander Kläser univentionstaff 2012-10-25 09:42:14 CEST
Mir ist noch unklar, an welcher Stelle man da am besten ansetzt. Der title sollte intern schon "normal" gespeichert werden und dann beim Rausschreiben an den TabButton generisch escaped werden.
Comment 6 Dirk Wiesenthal univentionstaff 2012-10-25 09:59:21 CEST
this.moduleWidget.set( 'title', 'UVMM ');

[...]

this.moduleWidget.set( 'titleDetail', this._domain.name );

[...]

this.moduleWidget.set( 'titleDetail', null );
Comment 7 Philipp Hahn univentionstaff 2012-10-26 15:36:10 CEST
Für UVMM wurde das jetzt erstmal lokal korrigiert; bitte ggf. reverten sobald das generische Problem gelöst ist:
virtualization/univention-virtual-machine-manager-daemon/umc/js/uvmm/DomainPage.js:445

svn36678, univention-virtual-machine-manager-daemon_2.0.12-1.400.201210261528
ChangeLog: ±0
Comment 8 Dirk Wiesenthal univentionstaff 2012-10-31 14:02:57 CET
(In reply to comment #6)
> this.moduleWidget.set( 'title', 'UVMM ');
> 
> [...]
> 
> this.moduleWidget.set( 'titleDetail', this._domain.name );
> 
> [...]
> 
> this.moduleWidget.set( 'titleDetail', null );

Fixed in:
  univention-management-console-frontend 2.0.148-1.500.201210311152

Es gibt jetzt die oben benannte Funktion für ein Modul.

(In reply to comment #5)
> Mir ist noch unklar, an welcher Stelle man da am besten ansetzt. Der title
> sollte intern schon "normal" gespeichert werden und dann beim Rausschreiben an
> den TabButton generisch escaped werden.

Über this.defaultTitle und this.get('titleDetail') kommt man auch an die Original-Strings heran, wenn man das möchte (ich sehe allerdings bisher keine Verwendung dafür). this.get('title') ist u.U. escaped. Das finde ich aber gut und wichtig, denn

this.set('title', this.get('title')) solle eine No-Op sein. Und dennoch will man in der Lage sein, HTML in den Titel zu schreiben (natürlich keinen User-Input).

Module korrigiert (alle einmal kurz durch die QA!):
univention-management-console-module-udm 3.0.48-1.277.201210311200
univention-virtual-machine-manager-daemon 2.0.14-1.404.201210311219

UVMM: Der Titel in der DomainPage.js ist jetzt länger, weil nicht mehr Abkürzung UVMM benutzt wird, sondern eben der defaultTitle. Ich hoffe das ist in Ordnung.
Comment 9 Lukas Walter univentionstaff 2012-11-20 16:39:25 CET
Ich konnte keine Escapingfehler mehr finden.

Der Titel der Tabs in der UVMM sieht von der Länge her erstmal ok aus; da der Tab wächst wenn der Titel länger wird sollte das kein Problem sein.


Changelog passt,
Verified.
Comment 10 Stefan Gohmann univentionstaff 2012-12-12 21:07:55 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".