自 2021 年 8 月发布阻止通过富文本内容进行跨站点脚本的安全补丁以来,我注意到 HTML 内容元素的输出在我们的项目中突然发生了变化。新引入的HTML Sanitizer删除了一些标签属性和标签(当模板被修改以便t3://
呈现样式 TypoLinks 时)。
因此,简单地覆盖默认的Html.html
Fluid Template、更改<f:format.raw>
to<f:format.html>
并添加 html 解码(如下例所示)已不再足够。
<f:section name="Main">
<f:comment> We use this to render links and other stuff in html elements </f:comment>
<f:format.htmlentitiesDecode>
<f:format.html parseFuncTSPath="lib.parseFunc">
{data.bodytext}
</f:format.html>
</f:format.htmlentitiesDecode>
</f:section>
防止 HTML Content Elements 提供的 html 代码输出发生变化的最简单方法是通过添加lib.parseFunc.htmlSanitize = 0
到 TypoScript 配置来全局禁用 sanitizer,这并不理想。
我怎样才能禁用parseFunc.htmlSanitize
唯一为此目的?
或者是否有其他解决方案可以在 HTML 内容元素中呈现 TypoLinks?
注意:如果您不覆盖Html.html
模板,则无需禁用 HTML Sanitizer!