Feature #12636
closedForm: a) Single Tick encode for {{10.line.content::s}}, b) new encoding type 'single tick'
100%
Description
Bei MedTool #12635 wurde eine projectDescription eingereicht die zwei Single Ticks und viele Double Ticks enthielt:
... <ol start="2"> ... <table width="0"> ... <td width="85"> ... <td width="146"> ...platelet count<100'000/μl.</p>...
- 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. Sowohl Content als auch Attribute von HTML Tags.