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 ...
随机推荐
- PowerShell快速修改多个文件的名称
本文介绍基于PowerShell语言,对文件夹中全部文件的名称加以批量替换.修改的方法. 在之前的文章中,我们介绍了基于Python语言,批量修改大量文件的名称的方法.当时我们修改文件名的需求 ...
- tomcat发布两个项目报错webAppKey重复设置
两个项目的web.xml中都有一个日志监听器配置 <listener> <listener-class> org.springframework.web.util.Log4jC ...
- CentOS 进入救援模式
因某些修改操作,导致系统重启后无法正常启动,此时需要进入救援模式,修复错误配置即可. 1.重启系统后,进入grup引导页面,选中第一项然后按"e" 进入编辑模式: 2.通过↓键找到 ...
- Docker简单使用总结
写在前面 最近在部署前后端分离的SpringBoot项目,发现使用Docker技术很方便,特此记录一下Docker常用命令 1.常用网站 Docker docs :https://docs.docke ...
- Linux-mknod命令
mknod 创建块设备或者字符设备文件.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 用法: mknod [选项]... 名称 类型 ...
- windows中如何将python脚本以服务运行
一.下载nssm工具 NSSM介绍 NSSM(the Non-Sucking Service Manager)是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像window ...
- win10无法访问共享文件夹win2008R2 错误代码0X80004005
错误代码0X80004005 无法访问共享计算机的解决方法 开始->运行(快捷键"win+R"),输入"regedit"后回车,打开注册表编辑器. 依次打 ...
- nishishui语录
nishishui语录 原因 由于根本在机房语录里不存在 nishishui 的话,所以我要新开一个语录,专门记录 \(Abnormal123\) 的比话. 好的. 4.30 nishishui : ...
- 使用C#爬取快手作者主页,并下载视频/图集
最近发现一些快手的作者,作品还不错,出于学习研究的目的,决定看一下怎么爬取数据.现在网上有一些爬虫工具,不过大部分都失效了,或者不开源.于是自己就写了一个小工具.先看一下成果: 软件只需要填写作者ui ...
- Linux 主流图形显示系统
在 Linux 系统中,主流的图形显示系统主要有以下几种: X Window System (X11) 简介 X Window System,通常简称为 X 或 X11,是历史最悠久.最广泛使用的图形 ...