簡體   English   中英

Adobe AEM CQ XSS過濾器

[英]Adobe AEM CQ XSS filter

在我的作者中,我正在編輯文本組件並添加以下html:

<li><span><a href="#" class="tt" data-toggle="popover" data-html="true" data-placement="top" data-content="Test text" role="button">test text</a></span></li>

但是,當我切換到預覽模式時,呈現的html是:

<li><span><a class="tt" href="#">Test text</a></span></li>

看來AEM正在剝離某些屬性。 有什么想法嗎?

更多信息經過更多閱讀之后,我認為我將其范圍縮小到將屬性添加到/libs/cq/xssprotection/config.xml。 但是,添加以下代碼后,頁面將停止加載:

    <tag name="div" action="validate">
        <attribute name="align"/>
        <attribute name="data-toggle">
            <regexp-list>
                <regexp name="data-toggle"/>
            </regexp-list>
        </attribute>
        <attribute name="data-html">
            <regexp-list>
                <regexp name="data-html"/>
            </regexp-list>
        </attribute>
        <attribute name="data-placement">
            <regexp-list>
                <regexp name="data-placement"/>
            </regexp-list>
        </attribute>
        <attribute name="data-content">
            <regexp-list>
                <regexp name="data-content"/>
            </regexp-list>
        </attribute>
    </tag>

我的語法不正確嗎?

這是因為您使用的是OOTB文本組件,而OOTB文本組件使用<cq:text>標記來顯示在組件中配置的文本。 與下面顯示的類似。

<cq:text property="text" escapeXml="true" ... />

在后台,將escapeXml屬性設置為true時,它將在內部調用XSSAPI的#filterHTML方法,該方法的輸出將刪除所有數據屬性。

您可以覆蓋文本組件,並在需要時刪除escapeXml屬性,或者根據要求在覆蓋后實現邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM