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 ...
随机推荐
- 高级工程师面试大全- spring篇
1.spring是什么 Spring是一个轻量级的IoC和AOP容器框架.是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求.主要包括以下七 ...
- 学习redis问题记录
2024年5月25日 倒腾了很长时间 突然发现的问题 ide提示改为toList() 我顺便就改过去了 但是实际业务中redis序列化会产生无法反序列化的问题 造成缓存挂壁 业务直接G collect ...
- Android Adapter中组件EditText文本变化监听 addTextChangedListener
问题背景:使用适配器显示一个列表,列表中Item中有EditText,滚动时会有EditText组件内容消失 步骤: 1. 在Adapter中,添加interface public interface ...
- VC 单文档FormView视图增加打印预览
1修改my.rc文件二处 3 TEXTINCLUDE BEGIN "#define _AFX_NO_OLE_RESOURCES\r\n" "#define _AFX_NO ...
- box-sizing属性的理解
使用原因 盒模型布局中padding与border也是具有尺寸的,为避免其对页面布局产生影响,可使用box-sizing: border-box;属性设置盒模型,此时便可只用设置元素宽高即可. 属性详 ...
- c程序设计语言 by K&R(二)指针与数组
指针与数组 1. c语言只有值传递,没有引用传递 可通过指针交换 #include <stdio.h> #include <stdlib.h> void swap(int* a ...
- Ubuntu开机直接进入grub终极解决方法
https://zhuanlan.zhihu.com/p/59062434 我遇到的问题是,每一步都操作没问题,但是开机还是会进入grub.最后只能进bios解决了. 我的服务器是supermicro ...
- 知识点考古:php5的面向对象学习笔记
闲来无事翻看以前收藏的资料,考古到保存的这篇文章对php的OOP的整理还很系统.原链接已经打不开(http://www.cublog.cn/u/17686/showart.php?id=146562) ...
- CSS & JS Effect – sticky horizontal scrollbar
需求 这个是 Google Ads 里的 table. 那个 horizontal scrollbar 可以 sticky bottom. 我们知道 scrollbar 是游览器原生的,我们能做的 s ...
- JavaScript – Object.groupBy & Map.groupBy
前言 group by 是一个很常见的功能,但 JS 却没有 build-in 的方法,一直到 es2024 才有 Object.groupBy (前生是 Array.prototype.group) ...