Feature #12636
Updated by Carsten Rose almost 3 years ago
Bei MedTool #12635 wurde eine projectDescription eingereicht die zwei Single Ticks und viele Double Ticks enthielt: enthielt <pre> ... <ol start="2"> ... <table width="0"> ... <td width="85"> ... <td width="146"> ...platelet count<100'000/μl.</p>... </pre> * Die Double Ticks kamen alle von TinyMCE (koennen potentiell aber auch Content sein), * Die Single Ticks waren im Text. Theoretisch koennten die auch durch TinyMCE bei Attributen kommen. Grundproblem: 1) Wird so ein Inhalt in eine Variable kopiert `column AS '_varname'` und diese spaeter via '{{varname:R}]` ausgegeben, so werden bei default alle single ticks escaped: das reicht und ist gut. 2) Wird das ganze SQL Statement mittels `20.sql = SELECT '{{10.line.content}}'` ausgegeben, gibt es kein Escape. Hier knallt es. Das koennte geloest werden in dem neu auch bei `{{xx.line.content}}` eine Escape Klasse angegeben wird und diese dann z.B. 'single ticks' escaped. 3) Beim speichern kann ein neues Encoding eingestellt werden: 'single tick'. Dabei werden context bezogen die Single Ticks durch '"' oder ' ersetzt. Ueberlegung: * Check ob TinyMCE double Ticks kodiert resp. es eine Option dafuer gibt dieses zu veranlassen. Antwort: Nein. * Diskussion von 2004 ob TinyMCE 'quotes' ausserhalb von Attributen kodieren soll: http://archive.tinymce.com/forum/viewtopic.php?id=31247 * `entity encoding` sollte aktiviert (default) sein, ist aber kein Garant das kein boeser / fehlerhafter Code eingeschleust wird. https://www.tiny.cloud/docs-4x/configure/content-filtering/#entity_encoding Zu 2) Sollte machbar sei. Zu 3) Auf QFQ Seite koennten wir bei Encoding=none/htmlspecialchar/ auch 'single ticks' nach HTML kodieren. kodieren - aber das ist unzuverlaessig, da ja alles konvertiert wird: Sowohl Content als auch Attribute von HTML Tags. Die sauberste Loesung waere wenn TinyMCE die Konvertierung mach. Aber: der User koennte immer noch gefaehrlichen Code einschleusen.