文档章节

Data URI

mot_evans
 mot_evans
发布于 2014/06/15 11:42
字数 402
阅读 194
收藏 1

改写一个模板,发现别人的CSS里面有 data:image/png,查询了资料。这个是,Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。data表示取得数据的协定名 称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。

firefox浏览器和Opera浏览器都可以在地址栏输入下面的字符串,回车,可以看到页面显示hi!!!
data:text/html;charset=utf-8;base64,PGh0bWw+PGJvZHk+aGkhISEhPC9ib2R5PjwvaHRtbD4=

支持其他的格式:

data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html;base64,base64编码的HTML代码
data:text/css,CSS代码
data:text/css;base64,base64编码的CSS代码
data:text/javascript,Javascript代码
data:text/javascript;base64,base64编码的Javascript代码
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据

base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符,网上有很多免费的base64 编码和解码的工具,

在PHP中可以用函数base64_encode() 进行编码。

<?php echo base64_encode(file_get_contents('http://www.baidu.com/img/bdlogo.gif'));?>
<img src=“http://www.baidu.com/img/bdlogo.gif”/>

<img src="data:image/gif;base64,编码数据"/>

在XSS,或者隐藏可以利用,猥亵的东西自由发挥。例如:

<object data=data:text/html;base64,PHNjcmlwdD5hbGVydCgiS0NGIik8L3NjcmlwdD4=></object>

更加详细的资料:

http://en.wikipedia.org/wiki/Data:_URL

 


© 著作权归作者所有

共有 人打赏支持
mot_evans
粉丝 21
博文 150
码字总数 44382
作品 0
黄冈
程序员
Android无SD卡如何从内存中安装apk?

最近有个i9000的Android2.2的手机,自带内存16G,无SD卡,请问如何下载程序到内存然后安装啊? 我启动一个程序A去下载另个一个程序B,下载的这个程序B只能保存在程序A的安装目录下(“/data...

晨曦之光
2012/03/05
1K
0
Android 装载器---启动装载器

LoaderManager管理Activity或Fragment内部的一个或多个装载器实例,每个Activity或Fragment只有一个LoaderManager对象。 通常在Activity的onCreate()方法或Fragment的onActivityCreated()内初...

长平狐
2012/10/16
207
0
Android自定义Content Provider及使用

先看看官网API的介绍: Content providers are one of the primary building blocks of Android applications, providing content to applications. Content providers是Android app的基石之......

Freewheel
2015/05/28
0
0
Android : Menus Part 3: Alternative Menus

Android offers a third type of menus: Alternative menus which allow multiple applications to use each other. An application menu can contain menu items that point to other appli......

artshell
2015/03/22
0
0
Android 命令 am 详解

位于frameworks/base/cmds/pm am命令作用:管理Activity usage: am [start|broadcast|instrument|profile] am start -D INTENT am broadcast INTENT am instrument [-r] [-e ] [-p ] [-w] am......

鉴客
2012/02/17
837
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 到底谁是小公猫……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享Trivium的单曲《Throes Of Perdition》 《Throes Of Perdition》- Trivium 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁:...

小小编辑
43分钟前
51
1
基础选择器

注意:本教程参考自网上流传的李兴华老师的jquery开发框架视频,但是苦于没有相应的配套笔记,由我本人做了相应的整理. 本次学习的内容 学习jquery提供的各种选择器的使用,掌握了jquery选择...

江戸川
48分钟前
1
0
Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部