data:text/html firefox钓鱼,JS DataURL 整理(一)

一、初识Data URL

数据URL是带有前缀的URL,data:可以将小文件直接嵌入文档中。

data URL是一种特殊格式的url,它的前缀是data:

data URL允许内容的创建者将小文件嵌入在documents中

过去被叫做data URIs,直到WHATWG将其更名为data URL(s)

data URL与传统的url有什么区别?

现代浏览器将data url视作唯一的不透明来源,而不是负责导航的url。

如何理解这句话呢?看一下这个例子:

// data URL

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAADklEQVQYV2NkgAJGGAMAAC0AA03DhRMAAAAASUVORK5CYII=

// 传统的URL

https://www.google.com

由上面的结果可以看出:

data URL与传统的url不同。

传统的url在浏览器地址栏中输入,可以直接导航到目标地址;而data URL则是一个data的url表现,可以理解为用url代表数据。

二、data URL语法

data URL由哪四部分组成?

data:[][;base64],

组成含义

data:

前缀

[]

[;base64]

可选的base64标识

数据本身

[]详情

mediatype是一个MIME type的字符串,比如'image/jpeg'。

如果忽略的话,默认是"text/plain;charset=US-ASCII"。

canvas.toDataURL()并没有忽略,默认MIMIE type为"image/png"。

[;base64]和详情

如果data是纯文本,你可以简单的嵌入文本(根据document类型使用适当的实体或者转义)。

如果data不是纯文本的话,可以标识为base64,并且嵌入base64编码的二进制数据。

常见的data URL形式

简单的text/plain数据

简单的text/palin数据的base64形式

HTML片段:普通标签

HTML片段:执行js的script标签

简单的text/plain数据

Hello World!

data:,Hello%2C%20World! // MIME type和;base64都没有,data和数据间只有`:,`

注意引号和空格的percent-encoding(URL-encoding)。

对于CSV数据(”text/csv“),percent-encoding需要保留分隔电子表格行的行尾。

简单的text/palin数据的base64形式

Hello World!

data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==

HTML片段:普通标签

Hello, World!

data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E

HTML片段:执行js的script标签

data:text/html,

执行js的script标签,注意闭script标签是需要的。

三、data URL常见问题

罗列一些在创建和使用data URL时的常见问题。

data:text/html,lots of text...

bottom?arg=val

其实它代表的是:

lots of text...

bottom?arg=val

语法

HTML中的格式

长度限制

异常处理的缺失

不支持字符串查询

安全问题

语法

data URL的格式非常简单,很容易忘记在data前面添加一个逗号,或者是错误的将数据编码为base64格式。

HTML中的格式

data URL在文件中提供了一个文件,这个文件相对于闭文档的宽度可能非常宽。

作为一URL,data应该将空白格式化好(换行、tab、或者空格),但是在使用base64编码时会有一些问题。

长度限制

尽管firefox支持无现场的data URL长度,但是浏览器不需要支持任何最大特定长度的数据。例如Opera 11浏览器将URL的长度限制到65535,data URL限制到65529(65529指的是base64 encoded后的长度)。

主流浏览器data URL长度限制

Chrome - 2MB for the current document. Otherwise the limit is the in-memory storage limit for - arbitrary blobs: if x64 and NOT ChromeOS or Android, then 2GB; otherwise, total_physical_memory / 5 (source).

Firefox - unlimited

IE ≥ 9 & Edge - 4GB

异常处理的缺失

media的无效参数,或者‘base64’排版错误,都会被忽略,但是不会报错出来。

不支持字符串查询

data URL的数据部分是不透明的,所以如果使用query string(比如?parameter-data)去查询时,将只在数据中包含URL的查询字符串。也就是说查询无效,query也会被当做数据的一部分。

安全问题

许多安全问题(如网络钓鱼)都与data url相关,并在浏览器的顶层导航到它们。

为了解决这些问题,在Firefox 59+中(发布版本,从58开始),对数据的顶层导航data:// urls已经被禁止。

更多:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ALV Styles in Field catalogue using OOPS

转自http://www.saptechnical.com/Tutorials/ALV/Styles/demo.htm By Swarna S, Tata Consultancy Services *&---------------------------------------------------------------------* *& Report ZALV_STYLES * *…

一道有意思的导论问题

今天看了一篇博客,说的是导论的一道课后题以及博主的解答,感觉对逻辑思维的锻炼还是很有价值的,特意引用一下。这个题目的题意是这样的:有N个人,分为好人和坏人两种,每次你可以挑两个人出来让他们互相指识彼…

mybatis执行批量更新batch update 的方法(oracle,mysql)

oracle和mysql数据库的批量update在mybatis中配置不太一样&#xff1a; oracle数据库&#xff1a; <updateid"batchUpdate" parameterType"java.util.List"><foreach collection"list"item"item"index"index"open&…

自称“房奴”的博士靠开店卖SCI论文10年盈利近百万,论文买卖你怎么看?

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;中国青年报、武汉晚报 首席记者杨佳峰导读&#xff1a;10年前&#xff0c;一位自称“房奴博士”的刚毕业博士生在网上开启了他的SCI售卖小铺。每篇 1-2 万元&#xff0c;声称一年内卖出去的论文中有 8 篇都进了SCI索…

既生瑜何生亮 access_token VS refresh_token

中国有句老话, 既生瑜何生亮, 既然有我周瑜在世, 为什么老天还要一个诸葛亮啊&#xff1f;同样的, 众所周知, 在 OAuth 2.0 授权协议中, 也有两个令牌 token , 分别是 access_token 和 refresh_token, 为什么已经有了 access_token, 还需要 refresh_token 呢?我们先看下面两者…

IT English Collection(9) of Objective-C

1 前言 今天我们来解除一篇有关Objective-C的介绍文章&#xff0c;详情如下。 2 详述 2.1 原文 Objective-C defines a small but powerful set of extensions to the ANSI C programming language that enables sophisticated object-oriented programming. Objective-C is th…

关于计算机软件系统的知识,二、计算机软件系统基本知识

一、计算机软件系统图示咱们先来直观的看一下&#xff0c;我就直接上图了打开今日头条&#xff0c;查看更多精彩图片计算机软件系统(一)系统软件在说系统软件之前我想用一张图让大家清晰的了解下&#xff0c;计算机硬件系统与软件系统的关系&#xff1a;计算机硬件系统与软件系…

Android之RxJava(一)

RxJava(一) 翻译地址: http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/ RxJava这段时间在Android开发者之间变得越来越火。 唯一的问题是,很难理解。 特别大部分人之前都是使用命令式编程语言。但是一旦你理解它,它是很完美的! 在这里帮你更好理解RxJava。 一共有…

#周末课堂# 赵扬老师 Android系列课程【ListView完全解析、Memory in Android】(火热报名中~~~)...

课程名称&#xff1a;课程一&#xff1a; Android晋级系列讲座之ListView完全解析&#xff08;中级课程&#xff09;课程二&#xff1a; Memory in Android&#xff08;高级课程&#xff09; 讲师资料&#xff1a;讲师 - 赵杨 - Android高级讲师开课信息&#xff1a;招募学员&a…

Nature评选年度十大科学发现:北师大博士凭借天眼研究入选!

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;Bio生物世界、北京师范大学新闻网、百度百科、北京师范大学官网近日&#xff0c;Nature 盘点了2020年度十大科学发现&#xff0c;这其中即包括新冠病毒研究、冷冻电镜突破、压力导致白发的原因、HIV治疗、银河系中的…

Android之集成友盟推送功能

友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等app开发和运营解决方案。 如何快速集成友盟推送功能&#xff1a; 1. 注册友盟账号 友盟开发者账号的注册地址:http://www.umeng.…

NSValue包装自定义结构体

typedef struct {int year;int month;int day; }Date;void value(){Date date {2013,9,30},//void *代表任何类型的指针//这里要穿结构图的地址&date//根据结构体类型生成对应的描述字符串char* type encode(Date);NSValue *value[NSValue value:&date withO…

HTML手机上图片显示被压扁,在重新调整Web浏览器HTML |时,文本会被压扁CSS

我无法准确地说出你希望它如何在你的问题中发挥作用。如果您希望font-size根据浏览器的视图大小动态更改&#xff0c;则可以使用vw单位(请参阅下面的jsfiddle预览和代码示例)。我使用了你在Pastebin上发布的HTML和CSS&#xff0c;但是我在原始帖子中添加了CSS并进行了编辑。我的…

Win11手机应用大改!全新界面来袭

在 Windows 11 中&#xff0c;应用商店、画图、照片、计算器等系统内置应用都获得了全新的改进&#xff0c;这回终于轮到你的手机应用了。在今年 9 月的微软 Windows 11 硬件暨全新 Surface 设备发布会上&#xff0c;微软曾简要地展示了 Windows 11 内置应用 Your Phone&#x…

标记为可序列化

序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中&#xff0c;先将对象的公共字段和私有字段以及类的名称&#xff08;包括类所在的程序集&#xff09;转换为字节流&#xff0c;然后再把字节流写入数据流。在随后对对象进行反序列化时&#xff0c;将创建出与原对象…

serialization机制

首先说明一下序列化的知识&#xff1a; java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中&#xff0c;使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中&#xff1b;然后在需要的时候&#xff0c;可以根据字节流中的信息来重…

java2的7次方怎么表示_静态市盈率要怎么看?

静态市盈率是估值一个公司质地的指标&#xff0c;同时它也就是大家常说的市盈率。它体现的是一个企业按照目前的盈利水平&#xff0c;我们买入后需要多长时间才能回本。那么静态市盈率高好还是低好呢&#xff1f;静态市盈率低好&#xff0c;高就意味着该股高估了。静态市盈率是…

中国科幻扛鼎之作,原来真的不止刘慈欣

▲ 点击查看50年前的某天&#xff0c;一个小孩和一群大人一起仰望着晴朗的天空&#xff0c;看着中国第一颗人造卫星“东方红一号”&#xff0c;默默地担心它会撞到其他星星。而这份小小的担心&#xff0c;成了他后来开始创造科幻的动力和梦想。这个仰望晴空的小孩叫刘慈欣。如果…

Android之screenOrientation属性

在开发android的应用中,有时候需要限制横竖屏切换。只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。 android:screenOrientation="landscape"是限制此页面横屏显示,android:screenOrientation="portrait"是限制此页面数竖屏显…

ubuntu make menuconfig error

主机环境&#xff1a;ubuntu --------------------------------------------------------------在ubuntu系统中&#xff0c;要编译内核&#xff0c;还需要安装一系列相应的工具才行。这篇文章&#xff0c;正是针对这一过程的一次记录&#xff0c;目标是可以通过 make menuconfi…