百度编辑器复制微信图片无法保存
作者:半山 发布时间:2023-08-14 17:32:46
00 小编的问题
小编向我们反馈,从微信里复制出来的图片,会被微信屏蔽,无法显示
我们后天采用的是百度编辑器,而且已经做了远程图片本地化,于是检查微信的图片地址。
随便打开一篇微信文章,发现其图片地址如下:
http://mmbiz.qpic.cn/mmbiz_jpg/QeUoMcnKBk25dgQG6qxeicwFbSytxtia6EgAYiakC7JXJhss25yYQKwUC8w8SBibjfQjicAHOn4DoFHrEiaBQWncYFfg/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1
可以看到这个地址和平常的图片地址不一样,没有jpg、png等图片后缀,用浏览器保存后,为webp格式。
01 怀疑本地化代码
检查本地化代码,发现确实有通过后缀判断的地方,但是默认为jpg后缀。
02 检查前端
后端检查没有发现问题,于是又查看前端,打断点,定位到复制图片的js代码段,发现如下:
原来编辑器会保存图片的旧地址,并和后端发回的旧地址比较,如果不相等,不会替换为发回的新地址,这个机制还是比较严谨的。
看上图,发现后端发回的旧地址,对“&”进行了转义,于是旧地址比较不相等,所以没有替换为本地化后的新地址。
03 继续检查后端
问题又回到后端了,找到发回的相关代码,如下:
原来是htmlspecialchars的原因,但是这个又不能去掉,防止xss攻击,那么转义后,再把“&”替换回来,即:
str_replace("&","&",htmlspecialchars($imgUrl,ENT_QUOTES))
上面的ENT_QUOTES 是为了让htmlspecialchars把单引号也转义,更加安全。
来源:https://www.cnblogs.com/xdao/p/ueditor_wechat_image.html
猜你喜欢
- 什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为
- 如图:Oracle 11g安装到42%挂了。上度娘查了一下,原来是Oracle安装包的问题,1,2两个包都要下载下来,而且需要解压到相同(同
- 上篇文章讲了js中的传值和传址 和 函数的作用域.这章我们来探讨js中的变量,表达式,和运算符 还有一些 js 语句。升级中……1, 表达式
- 原理中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词。表面上看,分词其实就是那
- bottle是一个小型web框架,很小只有一个文件,但功能确很强大,学起来也简单,简单和小巧的同时也有很多不足,某些功能支持还不是很完善,比
- CSS Hack是在标准CSS没办法兼容各浏览器显示效果时才会用上的补救方法,在各浏览器厂商解析CSS没有达成一致前,我们只能用这样的方法来
- 前言在我们的日常开发中, 常用的中间件有很多, 今天来讲一下怎么集成限流中间件, 它可以很好地用限制并发访问数来保护系统服务, 避免系统服务
- 第三章 XML的术语提纲:导言 一.XML文档的有关术语 二.DTD的有关术语导言初学XML最令人头疼的就是有一大堆新的术语概念要理解。由于
- 到了今天,数据库已经成了网站的灵魂,可以说,没有对数据进行集中管理就算不上是一个真正的网站。而ASP加数据库,更成了主流中的主流,网站里的用
- 注意:如果您尚未阅读过原来那篇老文章《悟透JavaScript》,请先行阅读该文,以了解上下文关系。在上面的示例中,我们定义了两个语法甘露,
- package work;import java.io.BufferedReader;import java.io.IOException;
- 然而,微软sql server在处理这类索引时,有个重要的缺陷,那就是把本该编译成索引seek的操作编成了索引扫描,这可能导致严重性能下降
- 支持多种编码的中文字符串截取函数! /* * @todo&
- 演示技术栈这次用到了关于css的一些功能,和jQuery。CSS3中添加的新属性animation是用来为元素实现动画效果的,但是anima
- 触发器权限和所有权CREATE TRIGGER 权限默认授予定义触发器的表所有者、sysadmin 固定服务器角色成员以及 db_owner
- 问:SQL Server应该怎样访问Sybase数据库的表?答:具体方法如下:1: 安装Sybase客户端版本的要求:Sybase Clie
- asp如何将RGB颜色转化成到16进制的?在R G B中输入小于255的数字点击观看即可转换成#开通的16进制。代码如下:<%R_RG
- 1. 现在的日期时间命令是<%=now%> 即可2.ASP取得表格(from)数据输入的方法,是使用一个内置
- 无论是 DAO 还是 ADO 都有两种从 Recordset 对象中查询记录的方法: Find 方法和 Seek 方法。在这两种方法中可以让
- 用法: 按住鼠标左键拖拽一个框后释放洗洗睡了<!DOCTYPE html public "-//W3C//DTD XHTML