富文本插入图片的时候直接复制链接的风险点和解决方案

news/2024/9/23 8:01:12/

业务背景

  • 最近由于项目需要开发了一个富文本的功能
  • 其中有一个小点是插入图片到富文本中,
    • 插入的时候是可以直接复制图片的链接地址插入
    • 我本来觉得没啥,但是感觉哪里不太对,于是开始了风险点评估,以及对应的解决方案

风险点评估

  • 插入的只是一个图片链接,无法判断内容是否合规,如果是非正规图片是不是就凉了
    • 虽然人眼是可以识别,但有几个问题
      • 已经上传到了我们项目的服务器了,难道再删除一次?
      • 当你的眼睛识别结束的时候,眼睛已经被伤害了啊
  • 有的图片资源设置了只有在同域名或者指定域名下才能访问
    • 会导致复制了链接,然后无法显示的问题
  • 图片尺寸大小,物理大小等无法控制,毕竟是别人的资源

如果强制需要,排除风险点方案

  • 开发图片审核接口
    • 插入图片链接前先传给后台校验资源接口,没问题后再返回给前台
    • 远程图片地址``下载为本地图片,再调用项目中的图片上传接口转为我们项目的资源,
  • 在插入图片链接的输入框里复制或者输入路劲的时候,直接进行图片链接的域名限制,只有指定域名的图片等资源才可插入到富文本编辑器中,从源头解决问题

综合评估

  1. 最简单方案
    • 除非是真的很必要,我建议直接将插入图片链接的功能去掉
  2. 折中方案,最佳实践
    • 输入链接的时候,对http资源的域名进行输入限制
  3. 理想方案,成本太大了
    • 开发图片审核接口,先审核是否合规,合规后下载文件并将其转换为我们项目的资源

致谢

  • 由于想到了这个问题就分析归纳了一波,又学到了,感谢这个小需求点
  • 感谢过往的经历,不然我真的想不到这么多
  • 感谢您百忙之中阅读我的文章,希望对您有帮助
  • 如果技术结合项目实战或者底层源码感兴趣,可以关注我噢,我最近两年估计会狂搞一波技术

http://www.ppmy.cn/news/1426656.html

相关文章

openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置

文章目录 openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置265.1安装openEuler操作系统265.2 修改操作系统内核PAGESIZE为64KB。265.3 关闭CPU中断的服务irqbalance openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置 本…

Dual-AMN论文阅读

Boosting the Speed of Entity Alignment 10: Dual Attention Matching Network with Normalized Hard Sample Mining 将实体对齐速度提高 10 倍:具有归一化硬样本挖掘的双重注意力匹配网络 ABSTRACT 寻找多源知识图谱(KG)中的等效实体是知识图谱集成的关键步骤&…

共享软件工厂:软件行业的“滴滴打车”模式

在数字化浪潮席卷全球的背景下,软件行业正面临着前所未有的挑战与机遇。传统软件开发模式由于需求变化快、交付周期长、人才流动性大、迭代升级困难等问题,已经难以满足市场快速变化的需求。在这个关键的时刻,共享软件工厂应运而生&#xff0…

【C++】哈希封装map与set

目录 前言: 一,底层哈希结构 1-1,迭代器的封装 1-2,哈希表的封装 二,unordered_map的封装 三,unordered_set的封装 前言: 上一篇文章说明了哈希结构,这一篇文章来说明如何使用…

【JavaEE多线程】线程安全、锁机制及线程间通信

目录 线程安全线程安全问题的原因 synchronized 关键字-监视器锁monitor locksynchronized的特性互斥刷新内存可重入 synchronized使用范例 volatilevolatile能保证内存可见性volatile不保证原子性synchronized 也能保证内存可见性 wait 和 notifywait()方法notify()方法notify…

【c基础】文件操作

1.fopen和fclose函数 函数原型 FILE *fopen(const char *path, const char *mode); 参数解释: 返回值:fopen打开成功,则返回有效file的有效地址,失败返回NULL。path是文件路径,可以相对路径,可以绝对路径…

进来学习K8s中的网络资源对象Service!

进来学习K8s中的网络资源对象Service! Kubernetes(K8s)是一个强大的容器编排平台,它不仅能够管理容器的生命周期,还能提供复杂的网络功能,使得在集群中的服务发现和访问变得简单。在 Kubernetes 中&#x…

手把手教你实现贪吃蛇

前言 在实现贪吃蛇前,我们需要熟练地掌握C语言知识,对初阶数据结构中的链表有一定的掌握,并且我们还会使用到Win 32 API 的知识,下面我会对需要使用到的API接口函数进行解释。最终的代码我放在后面,有需要的可以自取。…