Univention Bugzilla – Bug 28146
Fehlendes Escaping auf JavaScript-Seite
Last modified: 2012-12-12 21:07:55 CET
Created attachment 4575 [details] Screenshot Derzeit fehlt in UVMM noch ein entsprechendes Escaping der HTML-Sonderzeichen (siehe Screenshot).
In der JavaScript-Funktion vncLink() wird auch kein Escaping verwendet.
Escaping kann durchgeführt werden über dojox.html.entitites.encode: http://livedocs.dojotoolkit.org/dojox/html/entities/encode
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.
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
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.
this.moduleWidget.set( 'title', 'UVMM '); [...] this.moduleWidget.set( 'titleDetail', this._domain.name ); [...] this.moduleWidget.set( 'titleDetail', null );
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
(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.
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.
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".