base64编码图片二进制数据后直接保存在html文件中
相关内容:
看到一个帖子,那就是base64编码用来http服务中对二进制文件编码,那么可以不可以直接在html文件中使用base64编码后的字符串来表示图片呢,于是就有了本文的尝试。
注意,这里使用的是markdown格式的图片插入链接格式,即\(\),但是我们把图片的物理地址替换为了base64编码后的字符串。
将一个一寸照片转成base64格式,即将一个二进制文件转为base64编码的字符串:

编码网站:

可以说,这真的是一件很神奇的事情,我们真的通过把二进制的图片数据转为base64编码的字符串后放到了html文件中,并且该种方式正确的被web服务器解析并发送给客户端的浏览器,而且在浏览器中也是可以成功打开这个图片的。
这里的尝试证明了这种操作的可行性,也就是把图片二进制数据以字符串的格式保存到网页文件中,该种方式可以成功的躲避web服务器上的文件正规性审查,你可以自由的用这种类似黑客技术的手段绕过网站的审核而实现任意上传图片的目的,不过该种方式的上传图片的方式虽然可以躲避网站管理方的审查但是却不一定能躲避上级监管部门的市场审查,毕竟这种小聪明般的技术也不是多么高深。
使用base64编码方式将图片嵌入到网页中对web服务器也是有着一定性能影响的,因为这种方式上传图片并不会将这些图片存入博客官方的图床库中,而是会把这些图片存入到html文本数据库中,从而极大程度上消耗web服务器上文本数据库的容量,并且该种方式的图片由于没有被存入图库中,因此也不存在图片缓存加速这种可能,总之,该种方式的上传图片对web的性能影响是不好的。
下面给出一个cnblogs官方判定为敏感违禁的图片,这里也是通过base64编码的方式试图绕过官方的审查,如果下图可见,那么就证明本文的方式是可行的,下图的敏感性个人认为还是合规的,于是就上传下面的这种维纳斯图片:
PS:
事实证明该图片成功躲避了cnblogs官方的图片审查成功上传并成功显示在客户端浏览器中,当然,我这里还是认为上面的这张维纳斯图片不应该算作违规的,因此,即使通过这种类似黑客手段的方式绕过官方审查也还是在心理过的去的。
base64编码图片二进制数据后直接保存在html文件中的更多相关文章
- Java读取接口中的数据,并保存到txt文件中!
//创建读取接口中数据的方法 public static String read() { URL url = null; BufferedReader reader = null; HttpURLCo ...
- Python:读取txt中按列分布的数据,并将结果保存在Excel文件中 && 保存每一行的元素为list
import xlwt import os def write_excel(words,filename): #写入Excel的函数,words是数据,filename是文件名 wb=xlwt.Wor ...
- Base64编码图片存取与前台显示
需求:将Base64编码图片以BLOB类型存入数据库,需要时取出显示 后台: String base64str=new String(log.getRequest_imgdata());//log为实 ...
- Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示
Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示 在 开发中遇到应用c#及asp.net的在的webservice 保存图片并以xml文件形式现实出来 ...
- Base64编码字符串时数据量明显变大
那就是当把byte[]通过Convert.ToBase64String转换成Base64编码字符串时数据量明显变大 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需 ...
- 前端上传 base64 编码图片到七牛云存储
参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...
- VUE Base64编码图片展示与转换图片
图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址,使用 base64 传输图片文件可以节省一个 http 请求,图片的 base64 编码可以算是前端优化的一 ...
- ajax取到数据后如何拿到data.data中的属性值
今天遇到的ajax取到数据后如何拿到data.data中的属性值的问题 比如拿到了数据 我要取出data中的name 题外话:当然取名最好别取什么奇怪的xiaobi
- 使用scrapy爬取的数据保存到CSV文件中,不使用命令
pipelines.py文件中 import codecs import csv # 保存到CSV文件中 class CsvPipeline(object): def __init__(self): ...
- Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中
package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
随机推荐
- 开关资源新方法:Try- with-resources
JDK7新特性:Try- with-resources try-with-resources 是 JDK 7中引入的一种新的异常处理机制,它主要用于自动管理资源,能够很容易地关闭在 try-catch ...
- 一文带你理解URI 和 URL 有什么区别?
当我们打开浏览器,要访问一个网站或者一个ftp服务器的时候,一定要输入一串字符串, 比如: https://blog.csdn.net/ 或者: ftp://192.168.0.111/ 这样我们就可 ...
- 最短路之Dijkstra
Dijkstra算法: Dijkstra是一种求解 非负权图 上单源最短路径的算法. 思路:将所有结点分为两个集合:已经确定最短路径的点(S)和未确定最短路长度的点集(T),开始时所有点都属于T 初始 ...
- python 接口传递字符串,特殊字符url编码
from urllib.parse import quote aaa = "+xxxx" quote(aaa)
- MySQL服务端innodb_buffer_pool_size配置参数
innodb_buffer_pool_size是什么? innodb_buffer_pool是 InnoDB 缓冲池,是一个内存区域保存缓存的 InnoDB 数据为表.索引和其他辅助缓冲区.innod ...
- 【YashanDB知识库】服务端是GBK编码,导致从22.2.12.100升级到22.2.13.100失败问题
问题现象 问题单:22.2.12.100升级到22.2.13.100失败 现象:如下图,从22.2.12.100升级到22.2.13.100失败,报错. 问题风险及影响 版本升级失败,影响上线 问题发 ...
- HTML / CSS – Email Marketing HTML Template
前言 虽然现在的 Email Client 有在进步, 但是比起 browser 还是差太远了. 假如你用 HTML5 + CSS3 的方式去写 Email Template 的话是不行的. 这篇特地 ...
- ASP.NET Core – Static Files
前言 记入一些冷门的知识. Custom content-type var fileExtensionContentTypeProvider = new FileExtensionContentTyp ...
- Maven高级——分模块开发与设计
分模块开发的意义 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享 分模块开发 创建Maven工程 书写模块代码 注意:分模块开发需要先针对模块功能进行设计,再进行编码.不会先将工 ...
- Flutter Engage China 开发者常见问题解答 | 上篇
再次感谢大家对 Flutter Engage China 活动 的关注和积极参与!我们在活动前后收到了很多来自开发者的反馈和问题,Flutter 团队和演讲嘉宾在直播 Q&A 环节中也针对部分 ...