HTML格式限制

从iTop 2.3.0开始,某些字段(例如案例日志条目和故障单描述)支持RTF格式。

使用HTML标记实现此格式。这便于在浏览器中显示,在线所见即所得编辑和从HTML电子邮件导入。但是,在基于Web的应用中插入任何类型的HTML标记都是不可接受的,因为这为各种恶意注入打开了大门。因此,HTML标记在记录到iTop标记中之前,始终要经过消毒处理标记。此清理基于HTML流程名称,属性和样式的白名单。

  1. 标签白名单中不存在的所有标签被完全删除(包括子标签)
  2. 删除了属性白名单中不存在的所有属性(对于已考虑的标签)
  3. 不在样式白名单中的任何样式都将被删除
  4. 最后但并非最不重要的一点是,唯一接受的URL方案(在href和src属性中)是http:,https:,mailto:和数据:。

标签的样式以及属性id和class完全被禁止,因为它们可能会干扰应用的行为。仅通过标签(如i,strong等)的语义和内联CSS样式(通过某些标签上的属性样式)支持HTML格式。请注意,在撰写本文时,此规则与基于Web的发送邮件客户端(例如gmail)一致。

这些清理规则适用于iTop中存储的任何HTML,因此它们适用于使用“从电子邮件中创建工单”扩展名通过复制粘贴输入或从发送邮件导入的富文本格式。

标签和属性白名单

清理要存储在iTo​​p中的HTML时,将保留以下标记。对于每个标签,下表列出了允许的属性。

HTML标签允许的属性
ahref,名称,样式,目标,标题
b没有。
没有。
块引用样式
身体没有。
br没有。
标题没有。
中央没有。
引用没有。
没有。
样式
德尔没有。
div样式
em没有。
场集样式
字形脸,颜色,样式,大小
h1样式
h2样式
h3样式
h4样式
小时样式
html没有。
i没有。
imgsrc,样式,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',

原贴链接:https://www.itophub.io/wiki/page?id=2_7_0%3Aadmin%3Arich_text_limitations


Rich Text Formatting limitations

Starting with iTop 2.3.0, some fields (for example the case log entries and the description of Tickets) support rich text formatting.

This formatting is implemented using HTML markup. This is convenient for displaying in the browser, on-line WYSIWYG editing and importing from HTMLemails. However inserting any kind of HTML markup inside a web-based application is not acceptable since it opens the door to all kind of malicious injections. Therefore the HTML markup always passes through a sanitization process before being recorded into the iTop database. This sanitization is based on a white-list for the HTML tag names, attributes and styles.

  1. Any tag not present in the tags white-list is completely removed (including the sub-tags)

  2. Any attribute not present in the attributes white-list ( for the considered tag) is removed

  3. Any style not within the styles white-list is removed

  4. Last but not least, the only URL schemes accepted (in href and src attributes) are http:, https:, mailto: and data:.

The tag style and the attributes id and class are completely banned, since they may interfere with the behavior of the application. HTML formatting is only supported via the semantic of the tags (i, strong, etc) and inline CSS styles (via the style attribute on some tags). Note that at the time of the writing this rule is consistent with web based email clients like gmail.

These sanitization rules apply to any HTML stored in iTop, so they apply to the rich text entered via a copy/paste or imported from an email when using the “Ticket creation from eMails” extension.

Tags and attributes white-list

The following tags are preserved when sanitizing the HTML to be stored in iTop. For each tag, the table below lists the attributes which are allowed.

HTML TagAllowed attributes
ahref, name, style, target, title
bNone.
bigNone.
blockquotestyle
bodyNone.
brNone.
captionNone.
centerNone.
citeNone.
codeNone.
codestyle
delNone.
divstyle
emNone.
fieldsetstyle
fontface, color, style, size
h1style
h2style
h3style
h4style
hrstyle
htmlNone.
iNone.
imgsrc,style, alt, title
insNone.
kbdNone.
legendstyle
listyle
navstyle
olstyle
pstyle
preNone.
qNone.
sNone.
sampNone.
sectionstyle
smallNone.
spanstyle
strongNone.
tablestyle, width, summary, align, border, cellpadding, cellspacing
tbodystyle
tdstyle, colspan
thstyle
theadstyle
trstyle
ttNone.
uNone.
ulstyle
varNone.

Styles white-list

The following styles are the only items allowed inside a style attribute (for the tags for which style is allowed):

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

The background color of a text (or an area) will be lost if it is specified via the forbiddenbackground CSS style property, but preserved if specified via the more specific background-colorCSS property.

Disabling the Sanitizer

Also not recommended, a Configuration Parameter can disable the HTML Sanitizer:

  • HTMLDOMSanitizer: default,

  • HTMLPurifierSanitizer: ???

  • HTMLNullSanitizer: no sanitizing at all.

'html_sanitizer' => 'HTMLNullSanitizer',
标签:
由 superadmin 在 2020/08/25, 16:21 创建
    

需要帮助?

如果您需要有关XWiki的帮助,可以联系:

深圳市艾拓先锋企业管理咨询有限公司