首页 > 解决方案 > 尖括号在数据 URI 中有效吗?

问题描述

我一直在阅读有关Data URIs的内容,其中包含以下有效数据 URI 的示例:

data:text/html,<script>alert('hi');</script>

但是通过阅读RFC 2397我发现了以下内容:

dataurl    := "data:" [ mediatype ] [ ";base64" ] "," data
mediatype  := [ type "/" subtype ] *( ";" parameter )
data       := *urlchar
parameter  := attribute "=" value

其中“urlchar”是从RFC2396导入的

据我了解,这urlchar应该是RFC2396 的第 2.4.3 节中的内容,其中记录了已排除的 US-ASCII 字符列表,并特别说明:

尖括号“<”和“>”以及双引号 (") 字符被排除在外,因为它们经常在文本文档和协议字段中用作 URI 周围的分隔符。

所以我的问题是,数据 URL 中是否允许使用尖括号?我是误解了 RFC 还是MDN上的例子错了?

标签: httpurl-schemedata-urirfc2396

解决方案


该示例确实是错误的(因为 Data URI 无效,尽管它可能“有效”)。


推荐阅读