本帖最后由 adminlily 于 2020-12-4 16:35 编辑
HTML格式限制
从iTop 2.3.0开始,某些字段(例如案例日志条目和故障单描述)支持RTF格式。
使用HTML标记实现此格式。这便于在浏览器中显示,在线所见即所得编辑和从HTML电子邮件导入。但是,在基于Web的应用中插入任何类型的HTML标记都是不可接受的,因为这为各种恶意注入打开了大门。因此,HTML标记在记录到iTop标记中之前,始终要经过消毒处理标记。此清理基于HTML流程名称,属性和样式的白名单。
- 标签白名单中不存在的所有标签被完全删除(包括子标签)
- 删除了属性白名单中不存在的所有属性(对于已考虑的标签)
- 不在样式白名单中的任何样式都将被删除
- 最后但并非最不重要的一点是,唯一接受的URL方案(在href和src属性中)是http:,https:,mailto:和数据:。
标签的样式以及属性id和class完全被禁止,因为它们可能会干扰应用的行为。仅通过标签(如i,strong等)的语义和内联CSS样式(通过某些标签上的属性样式)支持HTML格式。请注意,在撰写本文时,此规则与基于Web的发送邮件客户端(例如gmail)一致。
这些清理规则适用于iTop中存储的任何HTML,因此它们适用于使用“从电子邮件中创建工单”扩展名通过复制粘贴输入或从发送邮件导入的富文本格式。
标签和属性白名单
清理要存储在iTo​​p中的HTML时,将保留以下标记。对于每个标签,下表列出了允许的属性。
HTML标签 | 允许的属性 | a | href,名称,样式,目标,标题 | b | 没有。 | 大 | 没有。 | 块引用 | 样式 | 身体 | 没有。 | br | 没有。 | 标题 | 没有。 | 中央 | 没有。 | 引用 | 没有。 | 码 | 没有。 | 码 | 样式 | 德尔 | 没有。 | div | 样式 | em | 没有。 | 场集 | 样式 | 字形 | 脸,颜色,样式,大小 | h1 | 样式 | h2 | 样式 | h3 | 样式 | h4 | 样式 | 小时 | 样式 | html | 没有。 | i | 没有。 | img | src,样式,alt,标题 | ins | 没有。 | 千比特 | 没有。 | 传说 | 样式 | 里 | 样式 | 导航 | 样式 | 醇 | 样式 | p | 样式 | 预先 | 没有。 | q | 没有。 | s | 没有。 | 样品 | 没有。 | 部分 | 样式 | 小 | 没有。 | 跨度 | 样式 | 强大 | 没有。 | 表 | 样式,宽度,总结,对齐方式,边框,cellpadding,cellspacing | 身体 | 样式 | d | 样式,科尔斯潘 | 日 | 样式 | thead | 样式 | tr | 样式 | tt | 没有。 | u | 没有。 | ul | 样式 | 变种 | 没有。 |
样式白名单
以下样式是样式属性内允许的唯一项目(对于允许样式的标签):
background-color, border, border- collapse, bordercolor, cellpadding, cellspacing, color, float, font, font-family, font-size, font- style, height, margin, padding, text-align, vertical-align, width, white-space
如果通过禁止的后台CSS样式XT​​后台指定了文本(或区域)的后台颜色,则将丢失该颜色(如果通过更具体的后台颜色CSS后台进行了指定,则将保留该颜色)。
禁用消毒剂
同样不推荐使用,配置参数可以禁用HTML Sanitizer:
- HTMLDOMSanitizer:默认,
- HTMLPurifierSanitizer:?
- HTMLNullSanitizer:完全不进行消毒。
'html_sanitizer' => 'HTMLNullSanitizer',
|