Project

General

Profile

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&lt;100'000/&mu;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 &apos; 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. 
 

Back