Verbesserung
Top-Thema
Wichtig
Kleinigkeit
Wichtig
Verbesserung
Kleinigkeit
#24750
TL-Script Macros: Dynamischen Inhalt in geschützten Attributen erlauben (SafeHTML)
TL-Script Macros stellen sicher, dass man z.B. kein Java-Script in die Seite einschleusen kann. Aktuell wird das dadurch erreicht, dass Attribute, die durch SafeHTML überwacht werden keinen dynamischen Inhalt erlauben. Statischer Inhalt wird beim Parsen des Scripts überprüft.
Verbesserung
Man möchte gerne z.B. URLs von href-Attributen dynamisch erzeugen. Daher soll dynamischer Inhalt auch in geschützten Attributen erlaubt werden. Geschützte Attribute, die dynamischen Inhalt enthalten, sollen dann dynamisch beim Rendern auf Sicherheit überprüft werden.
Ein Macro
x -> {{{<a href="javascript:alert('xxx');">click</a>}}}
führt schon beim Parsen zu einem Fehler, der JavaScript in href verbietet.
Ein Macro
x -> {{{<a href="{concat("java", "script:alert('xxx');")}">click</a>}}}
wird zwar vom Parser akzeptiert, aber führt beim Rendern zu einem Fehler auf der Seite.
Test
- test.com.top_logic.model.search.expr.TestSearchExpression.testDynamicValuesInURL()
- test.com.top_logic.model.search.expr.TestSearchExpression.testHtmlSafetyDynamic()
- test.com.top_logic.model.search.expr.TestSearchExpression.testHtmlSafety()