ton*_*edz 5 xss tel aem sightly htl
我有一个组件使用xtype="richtext"我的项目中的Rich Text Edit小部件(),它在整个站点中用作默认文本组件.
用户希望能够使用telURI方案将电话链接插入使用此组件输入的文本中.
该对话框允许他们这样做,但是当稍后在Sightly/HTL中呈现富文本编辑的内容时,将使用html上下文:
{$text @ context='html'}
Run Code Online (Sandbox Code Playgroud)
完成此操作后,将忽略my属性的值.
存储在存储库中的HTML是:
<a href="tel:04242424242">Call us!</a>
Run Code Online (Sandbox Code Playgroud)
在作者实例的页面上实际呈现的是:
<a>Call us!</a>
Run Code Online (Sandbox Code Playgroud)
在发布者上,由于链接检查器,标签会被完全删除.
更改上下文会unsafe导致href渲染,但这不是我愿意接受的解决方案.该组件在很多地方使用,我想确保XSS保护足够.
有没有办法影响htmlHTL中的上下文处理电话链接的方式?
我尝试在叠加层中添加一个额外的正则表达式apps/cq/xssprotection/config.xml:
<regexp name="onsiteURL" value="([\p{L}\p{N}\\\.\#@\$%\+&;\-_~,\?=/!]+|\#(\w)+)"/>
<regexp name="offsiteURL" value="(\s)*((ht|f)tp(s?)://|mailto:)[\p{L}\p{N}]+[\p{L}\p{N}\p{Zs}\.\#@\$%\+&;:\-_~,\?=/!]*(\s)*"/>
<regexp name="telephoneLink" value="tel:\+?[0-9]+"/>
Run Code Online (Sandbox Code Playgroud)
进一步说:
<attribute name="href">
<regexp-list>
<regexp name="onsiteURL"/>
<regexp name="offsiteURL"/>
<regexp name="telephoneLink"/>
</regexp-list>
<!-- Skipped for brevity -->
</attribute>
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有影响Sightly/HTL在html上下文中转义字符串的方式.
我也试过覆盖Sling xss规则,/libs/sling/xss/config.xml但也没有运气.
怎么做到呢?
Bla*_*ski 10
有两个xss保护配置文件:
/libs/cq/xssprotection/config.xml/libs/sling/xss/config.xml正好使用第二个,这意味着你需要在路径上覆盖它 /apps/sling/xss/config.xml
值得一提的是,只有在重新启动aem实例后才会应用新配置.