You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 11升级至12后video标签被转实体问题求助

TYPO3 12升级后video/source/track标签被转义的解决方案

你遇到的问题核心是TYPO3 12引入了HtmlSanitizer组件,它会在内容保存和渲染阶段对HTML进行安全过滤,之前的TypoScript和RTE配置没有覆盖这个新组件的规则,导致标签被转义。以下是分步解决方法:

1. 配置HtmlSanitizer(关键步骤)

在站点的config.yaml文件中添加对video、source、track标签的允许规则,同时指定允许的属性(按需添加,避免多余权限):

frontend:
  htmlSanitizer:
    default:
      allowedTags:
        - video
        - source
        - track
      allowedAttributes:
        video:
          - controls
          - width
          - height
          - poster
          - autoplay # 按需添加,不需要可删除
        source:
          - src
          - type
        track:
          - src
          - kind
          - srclang
          - label
          - default

2. 完善RTE配置

TYPO3 12的RTE(CKEditor)配置方式有调整,需要同时配置编辑器和处理规则:

  • 在RTE预设配置文件(如rte_ckeditor/Configuration/RTE/Default.yaml)中添加:
editor:
  config:
    extraAllowedContent: 'video[*];source[*];track[*]'
    extraPlugins: 'mediaembed' # 启用支持媒体标签的插件
processing:
  allowTags:
    - video
    - source
    - track
  allowTagsOutside:
    - video
    - source
    - track
  • 同时在TypoScript中确保RTE处理规则生效:
RTE.default.proc {
  allowTags := addToList(video,source,track)
  allowTagsOutside := addToList(video,source,track)
  htmlSanitize = 1 # 强制使用HtmlSanitizer替代旧过滤逻辑
}

3. 检查字段TCA配置

确认bodytext字段的TCA类型为text并启用富文本,避免input类型自动转义:

'bodytext' => [
  'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.text',
  'config' => [
    'type' => 'text',
    'enableRichtext' => true,
    'richtextConfiguration' => 'default',
    'cols' => 40,
    'rows' => 15,
    'softref' => 'typolink_tag,email[subst],url[subst]',
  ],
],

4. 清除所有缓存

修改配置后必须清除TYPO3的全部缓存(包括配置缓存、页面缓存),确保新规则生效。

安全说明

通过以上配置,你只允许了必要的视频相关标签和属性,没有关闭整体安全过滤,既能解决标签转义问题,又能防范XSS等安全风险,符合安全要求。

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:16:13