Rendering von Telefonlinks in HTL basierend auf Eingaben von einem Rich-Text-Widget

Ich habe eine Komponente, die das Rich Text Edit-Widget verwendet xtype="richtext") in meinem Projekt, das auf der gesamten Website als Standardtextkomponente verwendet wird.

Die Benutzer möchten in der Lage sein, Telefonverbindungen mit dem @ einzufügetel URI-Schema in den mit dieser Komponente eingegebenen Text.

Das Dialogfeld ermöglicht dies, aber wenn der Inhalt der Rich-Text-Bearbeitung später in Sightly / HTL gerendert wird, wird dashtml context wird verwendet:

{$text @ context='html'}

Wenn dies erledigt ist, wird der Wert meines Attributs ignoriert.

Der im Repository gespeicherte HTML-Code lautet:

 <a href="tel:04242424242">Call us!</a>

Und was tatsächlich auf der Seite in der Autoreninstanz gerendert wird, ist:

 <a>Call us!</a>

Auf dem Publisher wird das Tag aufgrund der Linkprüfung vollständig entfernt.

Ändern des Kontexts aufunsafe verursacht dashref zu rendern, aber es ist keine Lösung, die ich akzeptieren möchte. Die Komponente wird an vielen Stellen verwendet, und ich möchte sichergehen, dass der XSS-Schutz ausreichend ist.

Gibt es eine Möglichkeit, wie ich die Art und Weise beeinflussen kann, wie dashtml Kontext in HTL behandelt Telefonverbindungen?

Ich habe versucht, dem Overlay von @ einen zusätzlichen regulären Ausdruck hinzuzufügeapps/cq/xssprotection/config.xml:

<regexp name="onsiteURL" value="([\p{L}\p{N}\\\.\#@\$%\+&amp;;\-_~,\?=/!]+|\#(\w)+)"/>
<regexp name="offsiteURL" value="(\s)*((ht|f)tp(s?)://|mailto:)[\p{L}\p{N}]+[\p{L}\p{N}\p{Zs}\.\#@\$%\+&amp;;:\-_~,\?=/!]*(\s)*"/>
<regexp name="telephoneLink" value="tel:\+?[0-9]+"/>

und weiter:

<attribute name="href">
    <regexp-list>
        <regexp name="onsiteURL"/>
        <regexp name="offsiteURL"/>
        <regexp name="telephoneLink"/>
    </regexp-list>
    <!-- Skipped for brevity -->
</attribute>

, aber das scheint nicht die Art und Weise zu beeinflussen, wie die Sightly / HTL-Zeichenfolgen im @ -Zeichen entkommehtml context.

Ich habe auch versucht, die Sling xss-Regeln in @ zu überlager/libs/sling/xss/config.xml hatte aber auch kein Glück.

Wie geht das?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage