动态标准 — 最后更新于 2024 年 9 月 12 日
text/html
此注册信息供社区审查,并将提交给 IESG 进行审查、批准和 IANA 注册。
charset
可以提供 charset
参数来指定文档的字符编码,覆盖文档中除字节顺序标记 (BOM) 之外的任何字符编码声明。参数的值必须与字符串“utf-8
”进行ASCII 不区分大小写匹配。 [ENCODING]
已经写了整本小说来描述适用于 HTML 文档的安全注意事项。本文档中列出了许多内容,读者可以参考以了解更多详细信息。但是,这里需要提及一些一般问题
HTML 是一种脚本语言,并且有大量的 API(其中一些在本文件中描述)。脚本可能会让用户面临信息泄露、凭据泄露、跨站点脚本攻击、跨站点请求伪造以及其他一系列问题的潜在风险。虽然本规范中的设计旨在在正确实现的情况下是安全的,但完整的实现是一项艰巨的任务,并且与任何软件一样,用户代理可能存在安全漏洞。
即使没有脚本,HTML 中也有一些特定功能,由于历史原因,它们需要与旧版内容广泛兼容,但这些功能会让用户面临不幸的安全问题。特别是,img
元素可以与其他一些功能结合使用,作为从用户在互联网上的位置进行端口扫描的一种方式。这可能会暴露本地网络拓扑,而攻击者在其他情况下无法确定这些拓扑。
HTML 依赖于一种有时称为同源策略的分区方案。在大多数情况下,源包括来自同一主机、同一端口、使用同一协议的所有页面。
因此,至关重要的是要确保构成站点一部分的任何不受信任的内容都托管在与该站点上任何敏感内容不同的源上。不受信任的内容可以轻松伪造同一源上的任何其他页面,读取来自该源的数据,导致该源中的脚本执行,向该源提交和从该源接收表单,即使它们受到唯一令牌保护以防止跨站点请求伪造攻击,以及利用公开给该源或授予该源的任何第三方资源和权限。
html
”和“htm
”通常(但肯定不是唯一地)用作 HTML 文档的扩展名。TEXT
与text/html
资源一起使用的片段要么引用相应文档
的指示部分,要么为页面内脚本提供状态信息。
multipart/x-mixed-replace
此注册信息供社区审查,并将提交给 IESG 进行审查、批准和 IANA 注册。
boundary
(在 RFC2046 中定义) [RFC2046]multipart/x-mixed-replace
资源的子资源可以是任何类型,包括具有非平凡安全影响的类型,例如text/html
。multipart/mixed
相同。 [RFC2046]multipart/x-mixed-replace
资源。与multipart/x-mixed-replace
资源一起使用的片段适用于由该主体部分使用的类型定义的每个主体部分。
application/xhtml+xml
此注册信息供社区审查,并将提交给 IESG 进行审查、批准和 IANA 注册。
application/xml
相同 [RFC7303]application/xml
相同 [RFC7303]application/xml
相同 [RFC7303]application/xml
相同 [RFC7303]application/xml
相同 [RFC7303]application/xhtml+xml
类型标记资源表明该资源是一个 XML 文档,该文档可能具有来自HTML 命名空间的文档元素。因此,相关规范是XML、XML 中的命名空间和本规范。 [XML] [XMLNS]application/xml
相同 [RFC7303]application/xml
相同 [RFC7303]xhtml
”和“xht
”有时用作具有来自HTML 命名空间的文档元素的 XML 资源的扩展名。TEXT
与application/xhtml+xml
资源一起使用的片段与任何XML MIME 类型具有相同的语义。 [RFC7303]
text/ping
此注册信息供社区审查,并将提交给 IESG 进行审查、批准和 IANA 注册。
charset
可以提供 charset
参数。参数的值必须为“utf-8
”。此参数没有任何作用;仅允许为了与旧版服务器兼容。
如果仅以超链接审核上下文中描述的方式使用,则此类型不会引入任何新的安全问题。
text/ping
资源始终由四个字节 0x50 0x49 0x4E 0x47(`PING
`)组成。ping
属性的一部分生成的 HTTP POST 请求一起使用。application/microdata+json
此注册信息供社区审查,并将提交给 IESG 进行审查、批准和 IANA 注册。
application/json
相同 [JSON]application/json
相同 [JSON]application/json
相同 [JSON]application/json
相同 [JSON]application/microdata+json
类型标记资源,表示该资源是一个JSON文本,包含一个对象,该对象只有一个名为“items
”的条目,该条目包含一个条目数组,每个条目包含一个对象,该对象包含一个名为“id
”的条目(其值为字符串),一个名为“type
”的条目(其值为另一个字符串),以及一个名为“properties
”的条目(其值为一个对象,该对象中的每个条目的值都包含一个数组,数组中的元素可以是对象或字符串,对象与上述“items
”条目中的对象具有相同的形式)。因此,相关的规范是JSON和本规范。 [JSON]用于传输旨在与HTML的微数据功能一起使用的数据的应用程序,尤其是在拖放上下文中,是此类型的主要应用程序类别。
application/json
相同 [JSON]application/json
相同 [JSON]application/json
相同 [JSON]与application/microdata+json
资源一起使用的片段与与application/json
一起使用时的语义相同(即,在撰写本文时,根本没有语义)。 [JSON]
text/event-stream
此注册信息供社区审查,并将提交给 IESG 进行审查、批准和 IANA 注册。
charset
可以提供 charset
参数。参数的值必须为“utf-8
”。此参数没有任何作用;仅允许为了与旧版服务器兼容。
来自与使用事件流的内容来源不同的来源的事件流可能导致信息泄漏。为避免这种情况,用户代理需要应用CORS语义。 [FETCH]
事件流可能会压垮用户代理;预计用户代理会应用适当的限制,以避免因事件流中的信息过多而耗尽本地资源。
如果出现服务器导致客户端快速重新连接的情况,服务器可能会不堪重负。服务器应使用5xx状态代码来指示容量问题,因为这将阻止符合标准的客户端自动重新连接。
与text/event-stream
资源一起使用的片段没有任何意义。
web+
方案前缀本节描述了与IANA URI方案注册表一起使用的约定。它本身并没有注册特定的方案。 [RFC7595]
web+
”开头,后跟一个或多个范围在a
-z
之间的字母的方案。web+
”方案在相关情况下都应使用UTF-8编码。web+
”方案注册处理程序。因此,这些方案不得用于旨在成为核心平台功能的功能(例如,HTTP)。同样,此类方案不得在其URL中存储机密信息,例如用户名、密码、个人信息或机密项目名称。