【发布时间】:2018-02-11 11:41:20
【问题描述】:
Twig 在清理危险的用户输入方面做得很好。但是,我正在构建一个特定的 Web 应用程序,我希望允许用户在公共 cmets 中发布可点击的 URL 链接。有什么方法可以让 Twig 不 清理 URL 链接,但仍然清理其他所有内容?
【问题讨论】:
标签: twig sanitization html-sanitizing twig-filter
Twig 在清理危险的用户输入方面做得很好。但是,我正在构建一个特定的 Web 应用程序,我希望允许用户在公共 cmets 中发布可点击的 URL 链接。有什么方法可以让 Twig 不 清理 URL 链接,但仍然清理其他所有内容?
【问题讨论】:
标签: twig sanitization html-sanitizing twig-filter
您可以使用raw filter 来防止 HTML 被转义:
{{ some_html|raw }}
或者更好的选择是将其与striptags filter 和白名单<a> 标签一起使用:
{{ some_html|striptags('<a>')|raw }}
Twig 在内部使用PHP strip_tags function。请注意,它的文档有这个警告:
警告
此功能不会修改您允许使用
allowable_tags的标签上的任何属性,包括恶作剧用户在发布文本时可能滥用的 style 和 onmouseover 属性将显示给其他用户。
【讨论】: