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 ...
随机推荐
- kubernetes负载感知调度
背景 kubernetes 的原生调度器只能通过资源请求来调度 pod,这很容易造成一系列负载不均的问题, 并且很多情况下业务方都是超额申请资源,因此在原生调度器时代我们针对业务的特性以及评估等级来设 ...
- SRE 必备知识 - Kafka 探秘之零拷贝技术
如果你了解过 Kafka,那么它用到的一个性能优化技术可能会引起你的注意 -- 操作系统的零拷贝(zero-copy)优化. 零拷贝操作可以避免对数据的非必要拷贝,当然,并非是说完全没有拷贝. 在 K ...
- 记一次 .NET某实验室自动进样系统 崩溃分析
一:背景 1. 讲故事 前些天有位朋友在微信上联系到我,说他们的程序在客户那边崩掉了,让我帮忙看下怎么回事,dump也拿到了,那就上手分析吧. 二:WinDbg 分析 1. 哪里的崩溃 既然是程序的崩 ...
- USB入门系列(一)认识USB
认识USB usb的类型 接头外形上 USB类型 描述 USB-A 最广泛的接口标准 USB-B 一般用于打印机.扫描仪.USBHUB等外部USB设备(j-tag就用到了) USB-C USB-C将成 ...
- android ImageView 设定宽度铺满,高度自定义
问题:imageView 宽度铺满,高度自定义,会出现上下留白的现象(一般比例的还好) 解决: <xxx.xxx.xxx.xxx.FullWidthImageView android:id=&q ...
- 【YashanDB数据库】Yashandb表闪回业务表实践
数据误删除 DELETE 操作闪回 示例(HEAP表) 基于闪回查询(建议): select * from sales.branches1; BRANCH_NO BRANCH_NAME AREA_NO ...
- LeetCode题集-1- 两数之和
这个题目是什么意思呢?简单来说就是在一个数组中找出两个元素,使其和为我们设定的值,并且每个元素只能用一次. 如下图具体示例: 到这里不知道你是否已经有解题思路了呢? 解法一:双层循环 我第一反应就是双 ...
- java_day3_Scanner,顺序结构,选择结构(if,switch),循环结构(for,while),
一.Scanner 键盘录入:程序运行过程中,用户可以根据自己的需求输入参与运算的值 实现键盘录入的步骤 1.导包 2.创建键盘录入对象 3.调用方法实现键盘录入 1)输入整数 2)输入字符串 pub ...
- Listener——监听器
Listener
- QT硬件异构计算
QT硬件异构计算 使用AI技术辅助生成 1 QT硬件异构计算概述 1.1 硬件异构计算概念 1.1.1 硬件异构计算概念 硬件异构计算概念 <QT硬件异构计算>正文 硬件异构计算概念 在进 ...