Es wird definitiv beim Speichern gelöscht, wie du sagst. Habe es gerade getestet.
Im Core ist bei Feld im Snippet das AllowHTML-Flag gesetzt. Damit dürfte der HTML-Sanitizer greifen. Theoretisch sollte es reichen, wenn eine eigene „config/packages/shopware.yaml“ angelegt wird und dort das script-Tag im Basic-Set ergänzt wird:
shopware:
html_sanitizer:
sets:
- name: basic
tags: ["script", "a", "abbr", "acronym", "address", "b", "bdo", "big", "blockquote", "br", "caption", "center", "cite", "code", "col", "colgroup", "dd", "del", "dfn", "dir", "div", "dl", "dt", "em", "font", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "ins", "kbd", "li", "menu", "ol", "p", "pre", "q", "s", "samp", "small", "span", "strike", "strong", "sub", "sup", "table", "tbody", "td", "tfoot", "th", "thead", "tr", "tt", "u", "ul", "var"]
attributes: ["align", "bgcolor", "border", "cellpadding", "cellspacing", "cite", "class", "clear", "color", "colspan", "dir", "face", "frame", "height", "href", "id", "lang", "name", "noshade", "nowrap", "rel", "rev", "rowspan", "scope", "size", "span", "start", "style", "summary", "title", "type", "valign", "value", "width"]
options:
- key: HTML.Trusted
value: true
Funktioniert bei mir aber auch nicht. Selbst test- und hardcodemäßig dem Eintrag in der entsprechenden yaml-Datei im vendor-Ordner hinzugefügt, hat nichts geändert.
Der JS-Code wird bereits clientseitig entfernt und gar nicht mehr an die API zum Speichern übergeben. Vermutlich sollte da die gleiche Config greifen, das weiß ich aber nicht genau.
Prinzipiell ist es ja sinnvoll, JS standardmäßig aus Sicherheitsgründen zu entfernen. Aber es sollte auch die Möglichkeit geben, das individuell freizugeben. Ich habe aktuell keinen Weg gefunden, vielleicht fehlt irgendwo noch ein Eintrag.
Ich brauche das aktuell zwar nicht. Aber vielleicht kann jemand (von Shopware) @r4m hier einen Tipp geben.