澳门皇家国际细说 Data U奔驰M级I

澳门皇家国际细说 Data U奔驰M级I

☞ 兼容性

由于出现时间较早,方今主流的浏览器基本都协助 data U帕杰罗I:

  • Firefox 2+
  • Opera 7.2+
  • Chrome (全部版本)
  • Safari (全数版本)
  • Internet Explorer 8+

然则部分浏览器对 data U奥迪Q5I 的使用存在限制:

  • 长度限制,长度超长,在有的用到下会导致内部存储器溢出,程序崩溃

Opera 下限制为 4100 个字符,最近一度去掉了这几个界定 IE 8+ 下限制为 32,770个字符(32kb),IE9 之后移除了那么些范围

1
2
Opera 下限制为 4100 个字符,目前已经去掉了这个限制
IE 8+ 下限制为 32,768 个字符(32kb),IE9 之后移除了这个限制
  • 在 IE 下,data U汉兰达I 只允许被用到如下地点:
    • object (images only)
    • img、input type=image、link
    • CSS 中允许选择 U翼虎L 注解的地点,如 background
  • 在 IE 下,Data U卡宴I 的内容必须是通过编码转换的,如 “#”、”%”、非
    US-ASCII 字符、多字节字符等,必须透过编码转换

☞ 低版本IE的解决之道 – MHTML

MHTML 正是 MIME HTML,是 “Multipurpose Internet Mail Extensions
HyperText 马克up Language”
的简称,它就像是三个带着附属类小部件的邮件一般,如下所示:

/** FilePath: */ /*!@ignore
Content-Type: multipart/related; boundary=”_ANY_SEPARATOR”
–_ANY_SEPARATOR Content-Location:myidBackground
Content-Transfer-Encoding:base64
iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
–_ANY_SEPARATOR– */ .myid { background-image:
url(“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==”);
*background-image:
url(mhtml:); }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/** FilePath: http://example.com/test.css */
/*!@ignore
Content-Type: multipart/related; boundary="_ANY_SEPARATOR"
 
–_ANY_SEPARATOR
Content-Location:myidBackground
Content-Transfer-Encoding:base64
 
iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
–_ANY_SEPARATOR–
*/
 
.myid {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==");
  *background-image: url(mhtml:http://example.com/test.css!myidBackground);
}

下面包车型大巴一串注释就如二个附属类小部件,那一个附属类小部件内容是二个叫作 myidBackground 的
base64 编码图片,在三个 class 叫做 myid 的 css
中用到了它。那里有几点必要注意:

  • _ANY_SEPARATOR 能够是即兴内容
  • 在”附属类小部件”结束地方必要丰富得了符 _ANY_SEPARATOR,否则在 Vista 和
    Win7 的 IE7
    中会出错。
  • 附属类小部件代码注意不要被压缩工具给干掉了

那里存在二个坑:部分体系协作格局下的 IE8 也认识 css 中的 hack
符号 *,可是不协理 mhtml,所以地方的剧情不会卓有效能。处理方案预计就唯有应用
IE 的尺度注释了。

☞ HTTPS 下的安全提示

HTTPS 打开页面,当在 IE六 、7 下利用 data UKoleosIs 时,会看到如下提示:

澳门皇家国际 1

MS 的演说是:

您正在查看的网站是个平平安安网站。它应用了 SSL (保险套接字层)或
PCT(保密通信技术)那样的平安磋商来确认保障您所收发音讯的安全性。
当站点使用安全磋商时,您提供的新闻例如姓名或信用卡号码等都因而加密,别的人不也许读取。可是,这一个网页同时含有未利用该安全协议的档次

很明朗,IE 嗅到了”未采纳安全协议的类型”。

浏览器在分析到二个 UENVISIONI 的时候,会率先判断协议头,借使是以 http(s)
起首,它便会确立3个互连网链接下载能源,假设它发现协议头为
data:,便会将其当做五个 Data URAV4I 财富举行辨析。

澳门皇家国际 2

然而从 chrome 的瀑布流,大家能够做如此的狐疑:

图中各类 Data U奥德赛I 都提倡了请求,不过情状都以
data(from cache),禁止使用缓存之后,如故那样。所以能够判明,浏览器在下载源码解析成
DOM 的时候,会将 Data U福睿斯I 的能源解析出来,并缓存在当地,最后 Data UCRUISERI
各个对应地点都会发起一回呼吁,只是那几个请求还未建立链接,就被发觉存在缓存的浏览器给拍死了。

摘自: 

☞ 安全阀门

Data UENVISIONI 在 IE 下有诸多康宁范围,事实上,很多 xss 注入也得以将 data U奥德赛I
的源流作为入口,使用 data U智跑I 绕过浏览器的过滤。

JavaScript

// 绕过浏览器过滤
src=”data:text/html,<script>alert(“Xss”)</script><!–

1
2
// 绕过浏览器过滤
http://example.com/text.php?t="><script src="data:text/html,<script>alert("Xss")</script><!–

那里能够非常的大程度的疏散,很有趣,值得读者去切磋。

Data ULANDIs 定义的情节能够看做小文件被插入到其余文书档案之中。UEnclaveI 是
uniform resource identifier
的缩写,它定义了接受内容的商业事务以及附带的相关内容,若是附带的相干内容是3个地址,那么此时的
U宝马X3I 也是叁个 U中华VL (uniform resource locator),如:

☞ 安全阀门

Data U福特ExplorerI 在 IE
下有诸多有惊无险范围,事实上,很多 xss 注入也能够将 data U本田UR-VI
的源流作为入口,使用 data U本田UR-VI 绕过浏览器的过滤。

// 绕过浏览器过滤
http://example.com/text.php?t="><script src="data:text/html,<script>alert("Xss")</script><!--

那边能够非常大程度的疏散,很有趣,值得读者去研究。

细说 Data URI

2015/08/27 · HTML5 ·
URI

初稿出处:
李靖(@Barret李靖)   

Data U瑞鹰L 早在 1992 年就被建议,那么些时候有恒河沙数个本子的 Data UCR-VL Schema
定义陆续出现在 VRML 之中,随后赶忙,当中的一个本子被提上了议案——将它做个一个嵌入式的财富放置在
HTML
语言之中。从 RFC 文书档案定稿的光阴来看(一九九七年),它是2个很受欢迎的声明。

Data U安德拉Is 定义的剧情能够看做小文件被插入到其余文书档案之中。UPAJEROI
是 uniform resource identifier 的缩写,它定义了接受内容的说道以及附带的相关内容,假诺附带的相干内容是3个地址,那么此时的
U奥迪Q3I 也是叁个 U科雷傲L (uniform resource locator),如:

ftp://10.1.1.10/path/to/filename.ext

1
2
ftp://10.1.1.10/path/to/filename.ext
http://example.com/source/id

协和式飞机前边的内容,能够告诉客户端二个标准下载资源的地址,而 U翼虎I
并不一定包涵贰个地点音信,如(demo):

data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7

1
data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7

其情商为
data,并告诉客户端将那一个剧情作为 image/gif 格式来分析,需求分析的始末使用的是
base64 编码。它直接包罗了剧情但并不曾1个明确的能源地址。

澳门皇家国际 3

Data U奥迪Q5L 早在 一九九二年就被提出,那1个时候有好几个版本的 Data UQashqaiL Schema 定义陆续出现在
VRML
之中,随后赶忙,当中的三个版本被提上了议案——将它做个3个嵌入式的能源放置在
HTML 语言之中。从 RFC
文书档案定稿的年月来看(一九九七年),它是多少个很受欢迎的表达。

☞ 兼容性

鉴于出现时间较早,近期主流的浏览器基本都协助data U中华VI:

  • Firefox 2+
  • Opera 7.2+
  • Chrome (全部版本)
  • Safari (全部版本)
  • Internet Explorer 8+

而是有些浏览器对 data U君越I
的行使存在限制:

  • 长度限制,长度超长,在部分使用下会促成内部存款和储蓄器溢出,程序崩溃

    Opera 下限制为 4100 个字符,目前已经去掉了这个限制
    IE 8+ 下限制为 32,768 个字符(32kb),IE9 之后移除了这个限制
    
  • 在 IE 下,data U逍客I 只允许被用到如下地方:

    在 IE 下,Data U锐界I
    的始末必须是由此编码转换的,如 “#”、”%”、非 US-ASCII
    字符、多字节字符等,必须透过编码转换

    • object (images only)
    • img、input type=image、link
    • CSS 中允许采纳 U普拉多L 表明的地点,如 background

☞ 低版本IE的化解之道 – MHTML

MHTML 正是 MIME HTML,是 “Multipurpose
Internet Mail Extensions HyperText 马克up Language”
的简称,它就像是多个带着附属类小部件的邮件一般,如下所示:

/** FilePath: http://example.com/test.css */
/*!@ignore
Content-Type: multipart/related; boundary="_ANY_SEPARATOR"

--_ANY_SEPARATOR
Content-Location:myidBackground
Content-Transfer-Encoding:base64

iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
--_ANY_SEPARATOR--
*/

.myid {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==");
  *background-image: url(mhtml:http://example.com/test.css!myidBackground); 
}

上方的一串注释就像是一个附件,这个附件内容是一个名叫 myidBackground 的 base64 编码图片,在一个 class 叫做 myid 的 css 中用到了它。这里有几点需要注意:
  • _ANY_SEPARATOR 可以是自由内容
  • 在”附属类小部件”截至地点要求充分得了符 _ANY_SEPARATOR,否则在
    Vista 和 Win7 的 IE7
    中会出错。
  • 附属类小部件代码注意不要被压缩工具给干掉了

那里存在多少个坑:部分类别合作格局下的
IE8 也认识 css 中的 hack
符号 *,不过不协理 mhtml,所以地点的内容不会生效。处理方案猜想就唯有利用
IE 的准绳注释了。

☞ HTTPS 下的平安提示

HTTPS 打开页面,当在 IE六 、7 下行使 data U安德拉Is 时,会合到如下提示:

澳门皇家国际 4

MS 的演说是:

你正在查看的网站是个平平安安网站。它应用了 SSL (安全套接字层)或
PCT(保密通信技术)那样的平安磋商来确定保障您所收发音信的安全性。
当站点使用安全协议时,您提供的新闻例如姓名或信用卡号码等都经过加密,别的人不能读取。但是,那么些网页同时涵盖未采用该安全协议的连串

很强烈,IE 嗅到了”未使用安全协议的门类”。

浏览器在解析到2个 UPRADOI
的时候,会首先判断协议头,固然是以 http(s) 开端,它便会创造贰个网络链接下载财富,借使它发现协议头为 data:,便会将其看做一个Data U翼虎I 能源开始展览剖析。

澳门皇家国际 5

然则从 chrome 的瀑布流,我们可以做如此的疑惑:

图中种种 Data U福特ExplorerI
都提倡了请求,但是意况都以 data(from cache),禁用缓存之后,依旧那样。所以能够判断,浏览器在下载源码解析成
DOM 的时候,会将 Data U普拉多I 的能源解析出来,并缓存在当地,最终 Data UHighlanderI
各个对应地点都会倡导二次呼吁,只是这几个请求还未制造链接,就被察觉存在缓存的浏览器给拍死了。

澳门皇家国际 6

澳门皇家国际 6

☞ 扩张阅读

  • RFC 2397 RFC文档
  • MDN –
    data_URIs MDN文档
  • MSDN – data
    Protocal.aspx) MSDN文档
  • NC –
    data_uris_explained
  • phpied –
    MHTML

    1 赞 1 收藏
    评论

澳门皇家国际 8

ftp://10.1.1.10/path/to/filename.ext
http://example.com/source/id

【新增】:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图