[英]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.