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

使用OWASP AntiSamy时,Quill笔记应白名单哪些HTML标签与属性?

Quill笔记场景下OWASP AntiSamy白名单补充建议

针对你用Quill创建笔记、用OWASP AntiSamy做内容净化的场景,结合你已列出的白名单,补充以下必要的标签和属性配置——既能覆盖Quill常用编辑功能,又能保证内容安全:

一、你已覆盖的基础标签(无需调整)

你选的这些都是Quill最常用的基础格式标签,完全没问题:

  • 文本强调:b、i、u、em、strong、mark
  • 段落与换行:p、br
  • 列表:ul、ol、li
  • 链接:a(带href、title、target属性)

二、需要补充的常用标签及配置

1. 引用块

Quill的引用功能会生成<blockquote>标签,必须加入白名单:

<tag name="blockquote" action="validate"/>

2. 代码块

Quill的代码块由<pre>和<code>组合生成,两个标签都要白名单:

<tag name="pre" action="validate"/>
<tag name="code" action="validate"/>

3. 多级标题

如果你的笔记支持标题(Quill默认支持H1到H6),按需添加对应标签:

<tag name="h1" action="validate"/>
<tag name="h2" action="validate"/>
<tag name="h3" action="validate"/>
<tag name="h4" action="validate"/>
<tag name="h5" action="validate"/>
<tag name="h6" action="validate"/>

不需要的层级可以直接删掉,比如日常笔记只保留到H3就足够

4. 表格(如果启用了表格插件)

要是你给Quill配置了表格插件,得把表格相关标签都加上,属性只保留安全项:

<tag name="table" action="validate">
    <attribute name="border" action="validate" onInvalid="remove"/>
    <attribute name="cellpadding" action="validate" onInvalid="remove"/>
    <attribute name="cellspacing" action="validate" onInvalid="remove"/>
</tag>
<tag name="thead" action="validate"/>
<tag name="tbody" action="validate"/>
<tag name="tr" action="validate"/>
<tag name="th" action="validate"/>
<tag name="td" action="validate"/>

5. 文本对齐(谨慎开启)

如果允许用户调整文本对齐,Quill会给段落标签添加style属性,必须严格限制只允许对齐相关的CSS规则:
比如给<p>标签补充配置:

<tag name="p" action="validate">
    <attribute name="style" action="validate">
        <regexp-list>
            <regexp value="^text-align:(left|center|right|justify);?$"/>
        </regexp-list>
    </attribute>
</tag>

style属性风险较高,只开启必要的规则,不要随意扩展其他CSS权限

三、链接属性的安全优化

你现有的<a>标签配置可以进一步完善,提升安全性:

<tag name="a" action="validate">
    <attribute name="href" action="validate">
        <regexp-list>
            <regexp value="^https?://.*"/>
            <!-- 若支持邮件链接,可添加这条规则:<regexp value="^mailto:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"/> -->
        </regexp-list>
    </attribute>
    <attribute name="title" onInvalid="remove"/>
    <attribute name="target" action="validate">
        <regexp-list>
            <regexp value="^_blank$"/>
        </regexp-list>
    </attribute>
    <!-- 强制添加rel属性,避免新窗口打开带来的钓鱼风险 -->
    <attribute name="rel" action="force" value="noopener noreferrer"/>
</tag>

四、必须禁止的危险标签

确保政策文件中明确禁用这些高风险标签(AntiSamy默认可能包含,但明确写出更稳妥):

  • 脚本类:script、noscript
  • 嵌入式内容:iframe、embed、object、video、audio
  • 样式类:style、link
  • 表单元素:form、input、button

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:58:17