如何在不全局禁用parseFunc.htmlSanitize的情况下在TYPO3 HTML内容元素使用t3:// TypoLinks
解决方案1:自定义专属parseFunc(推荐,不影响全局配置)
单独定义一套仅用于HTML内容元素的TypoLink解析规则,避免修改全局的lib.parseFunc配置:
- 新增TypoScript配置:
# 复制全局parseFunc配置做单独定制 lib.parseFunc_forHtmlContent < lib.parseFunc # 仅在该配置下关闭HTML清理 lib.parseFunc_forHtmlContent.htmlSanitize = 0
- 修改你覆写的
Html.htmlFluid模板,替换parseFuncTSPath参数:
<f:section name="Main"> <f:comment>渲染HTML内容元素内的TypoLink,不影响全局富文本解析逻辑</f:comment> <f:format.htmlentitiesDecode> <f:format.html parseFuncTSPath="lib.parseFunc_forHtmlContent"> {data.bodytext} </f:format.html> </f:format.htmlentitiesDecode> </f:section>
解决方案2:直接针对HTML内容元素配置渲染规则
如果不想修改Fluid模板,可直接在TypoScript中覆盖HTML内容元素的渲染逻辑:
tt_content.html { # 仅针对HTML内容元素关闭HTML清理 stdWrap.htmlSanitize = 0 stdWrap.parseFunc < lib.parseFunc stdWrap.parseFunc.htmlSanitize = 0 }
重要提示:关闭HTML Sanitizer会带来XSS跨站脚本攻击风险,以上方案仅适用于HTML内容元素的输入权限完全受控、仅可信用户可编辑的场景。
如果你没有覆写过默认的Html.html模板,无需做任何调整,保持默认的HTML Sanitizer开启状态即可。
内容的提问来源于stack exchange,提问作者Ludwig
相关产品推荐
相关产品推荐

