文档章节

Data URI

mot_evans
 mot_evans
发布于 2014/06/15 11:42
字数 402
阅读 191
收藏 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
Intent的使用详解

在android中,Intent的使用可算是无处不在,它起到了媒介的作用,可以当做一条指令,或者一种协议。它的作用是告诉android系统要做什么和怎么做 该Intent对象组要由六部分,分别是Component...

mybabe0312
2015/04/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
1
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
9
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0
OpenCV边缘检测算子原理总结及实现

1. 拉普拉斯算子 原理:是一种基于图像导数运算的高通线性滤波器。它通过二阶导数来度量图像函数的曲率。 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉...

漫步当下
昨天
0
0
Spring源码阅读——1

开始读Spring源码吧,看再多的技术博客,不如自己看一下~~~~~ Spring源码目前在github中,新版本基于gradle构建。所以阅读源码需要先安装github和gradle。 spring中git地址 1、安装git(略)...

叶枫啦啦
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部