Рендеринг телефонных ссылок в HTL на основе ввода из виджета Rich Text

У меня есть компонент, использующий виджет Rich Text Edit (xtype="richtext") в моем проекте, который используется по всему сайту в качестве текстового компонента по умолчанию.

Пользователи хотели бы иметь возможность вставлять телефонные ссылки, используяtel Схема URI в текст, введенный с помощью этого компонента.

Диалог позволяет им сделать это, но когда содержимое Rich Text Edit визуализируется позже в Sightly / HTL,html контекст используется:

{$text @ context='html'}

Как только это будет сделано, значение моего атрибута игнорируется.

HTML-код, хранящийся в хранилище:

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

И что на самом деле отображается на странице экземпляра автора:

 <a>Call us!</a>

на издателе тег полностью удаляется из-за проверки ссылок.

Изменение контекста наunsafe вызываетhref сделать, но это не то решение, которое я готов принять. Компонент используется во многих местах, и я хочу быть уверенным, что защита XSS достаточна.

Есть ли способ, которым я могу повлиять на способhtml контекст в HTL относится к телефонным ссылкам?

Я попытался добавить дополнительное регулярное выражение в оверлейapps/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]+"/>

и далее:

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

но это, похоже, не влияет на то, как Sightly / HTL избегает строк вhtml контекст.

Я также попытался наложить правила Sling XSS, расположенные в/libs/sling/xss/config.xml но тоже не повезло.

Как это можно сделать?

Ответы на вопрос(1)

Ваш ответ на вопрос