百度编辑器复制微信图片无法保存

作者:半山 时间: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

标签:百度编辑器,图片
0
投稿

猜你喜欢

  • php.ini修改php上传文件大小限制的方法详解

    2023-09-11 04:03:12
  • Oracle 8i字符集乱码问题析及其解决办法

    2010-07-26 13:29:00
  • MySQL安全问题的一点心得

    2009-01-07 16:13:00
  • PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】

    2023-07-23 02:36:20
  • SQL Select语句完整的执行顺序

    2008-09-28 21:22:00
  • python绘图库Matplotlib的安装

    2023-09-26 19:32:22
  • javascript实现鼠标选取拖动或Ctrl选取拖动

    2021-08-21 19:08:33
  • innerHTML,outerHTML,innerText,outerText用法

    2008-02-15 12:22:00
  • Oracle数据库与SQL Server数据库镜像对比

    2009-04-11 16:24:00
  • SWFObject2.0: 基于Javascript的Flash媒体版本检测与嵌入模块

    2009-08-19 13:24:00
  • JavaScript中常见的几种获取元素的方式

    2023-07-13 07:46:12
  • asp_数据库操作封装

    2010-04-03 21:00:00
  • JavaScript登录验证码的实现

    2023-08-23 21:03:12
  • class和id命名探讨

    2007-10-16 17:55:00
  • "模板化"——限制还是激发

    2009-03-26 11:36:00
  • 图标设计常犯的10种错误

    2008-03-06 13:40:00
  • 详细解读php的命名空间(二)

    2023-06-06 16:12:38
  • 编写和优化SQL Server的存储过程

    2009-04-13 10:13:00
  • Oracle相关组件版本信息的介绍

    2023-07-14 09:19:53
  • JS通过FSO将unicode字符写入文本

    2009-06-01 12:26:00
  • asp之家 网络编程 m.aspxhome.com