com.squareup.okhttp3:okhttp 组件安全漏洞及健康度分析
组件简介
维护者 | square组织 | 许可证类型 | Apache License 2.0 |
首次发布 | 2016 年 1 月 2 日 | 最新发布时间 | 2023 年 4 月 23 日 |
GitHub Star | 44403 | GitHub Fork | 9197 |
依赖包 | 5,582 | 依赖存储库 | 77,217 |
com.squareup.okhttp3:okhttp 一个开源的 HTTP 客户端库,可以用于 Android 和 Java 应用程序。它提供了一种简单而强大的方式来发送和接收网络请求,支持 HTTP/2、GZIP、缓存、TLS 1.3 等特性。它还能够在网络不稳定的情况下自动恢复连接,并支持多个 IP 地址的切换。
官网:Overview - OkHttp
官方仓库:GitHub - square/okhttp: Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
参考链接:
com.squareup.okhttp3:okhttp | repo1.maven.org | Ecosyste.ms: Packages
组件健康度
技术健康度 | 该组件是一个高效的 HTTP 客户端,支持 HTTP/2、GZIP、缓存、TLS 1.3 等特性。它基于 Okio 库和 Kotlin 标准库,提供了流畅的构建器和不可变的 API。它还能够在网络不稳定的情况下自动恢复连接,并支持多个 IP 地址的切换。它的技术健康度非常高,可以满足现代应用程序的网络需求。 |
社区健康度 | 这个组件是由 Square 公司开源的,托管在 GitHub 上。它有超过 4 万个星标,1.5 万个 fork,87 个 issue 和 124 个 tag。它的社区非常活跃,有很多贡献者和用户。它也有很多相关的项目,如 okhttp-logging-interceptor, okhttp-sse, okhttp-dnsoverhttps 等。它的社区健康度非常高,可以提供丰富的资源和支持。 |
更新和维护频率 | 这个组件的最新版本parent-4.11.0,发布于 2023 年 4 月 23 日。它的更新频率较高,几乎每隔几个月就会发布一个新版本。它也有一个长期支持的分支 3.12.x,支持 Android 2.3+ 和 Java 7+。它的维护频率也较高,每隔几天就会有一次提交。它的更新和维护频率非常高,可以保证组件的稳定性和安全性。 |
兼容性 | 这个组件可以在 Android 5.0+ (API level 21+) 和 Java 8+ 上运行。它也可以使用 Conscrypt 库来集成 BoringSSL,提供更好的 TLS 支持。它对 Kotlin 的支持也很好,可以使用 Kotlin 的扩展函数和协程等特性。它的兼容性非常高,可以适应不同的平台和语言。 |
文档和支持 | 这个组件有一个完善的项目网站,提供了详细的文档和 API。它也有一个 wiki 页面,提供了一些常见问题和解决方案。它还有一个 bug bounty 计划,鼓励用户报告安全漏洞。它的文档和支持非常完善,可以帮助用户快速上手和解决问题。 |
com.squareup.okhttp3:okhttp 这个组件的健康度非常高,是一个值得使用和信赖的 HTTP 客户端库。
参考链接:
Overview - OkHttp
GitHub - square/okhttp: Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
com.squareup.okhttp3:okhttp 4.11.0 on Maven - Libraries.io
组件许可证解读
Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:
- 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
- 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
- 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
- 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
- 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
- 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。
需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。
许可证原文链接:https://github.com/square/okhttp/blob/master/LICENSE.txt
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2017-1023 | Square OkHttp 安全漏洞 | 中危 | [3.0.0,3.1.2) | 3.1.2 |
同类型可替代组件
Retrofit: 这是一个基于 OkHttp 的类型安全的 HTTP 客户端,可以将 HTTP API 转换为 Java 接口。它支持同步和异步调用,以及多种数据格式,如 JSON, XML, Protocol Buffers 等。它还可以与 RxJava, Coroutines, Guava 等库集成,提供更多的功能和灵活性。它的最新版本是 2.9.0,发布于 2020 年 5 月 20 日。官网:Retrofit
Volley: 这是一个由 Google 开发的轻量级的 HTTP 库,专为 Android 平台优化。它可以自动处理网络请求的调度和缓存,以及图片加载和显示。它支持优先级、取消、重试、自定义请求等特性。它的最新版本是 1.2.0,发布于 2020 年 11 月 9 日。官网:Volley overview | Volley
Apache HttpClient: 这是一个成熟的 HTTP 客户端库,支持 HTTP/1.1 和 HTTP/2 协议。它提供了多种连接管理策略、身份验证机制、拦截器、重定向处理等特性。它还有一个专门为 Android 设计的分支,称为 HttpClient Android。它的最新版本是 5.1.2,发布于 2021 年 8 月 14 日。官网:Apache HttpComponents – HttpClient Overview
组件SBOM
组件名称 | 版本 | 是否直接依赖 | 仓库 |
webpack | 5.82.0 | 是 | npm |
punycode | 2.1.1 | 否 | npm |
to-regex-range | 5.0.1 | 否 | npm |
karma | 6.4.2 | 是 | npm |
com.squareup.okhttp3:okhttp | 5.0.0-alpha.10 | 是 | maven |
biz.aQute.bnd:biz.aQute.bnd.gradle | 6.4.0 | 是 | maven |
engine.io-parser | 5.0.4 | 否 | npm |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
墨菲安全 | 为您提供专业的软件供应链安全管理
关于墨知
墨知是国内首个专注软件供应链安全领域的技术社区,社区致力于为国内数百万技术人员提供全方位的软件供应链安全专业知识内容,包括软件供应链安全技术、漏洞情报、开源组件安全、SBOM、软件成分分析(SCA)、开源许可证合规等前沿技术及最佳实践。
墨知主要内容分类:
- 漏洞分析:漏洞_墨知 (oscs1024.com)
- 投毒分析:投毒分析_墨知 (oscs1024.com)
- 行业动态:行业动态_墨知 (oscs1024.com)
- 行业研究:行业研究_墨知 (oscs1024.com)
- 工具推荐:工具推荐_墨知 (oscs1024.com)
- 最佳实践:最佳实践_墨知 (oscs1024.com)
- 技术科普:技术科普_墨知 (oscs1024.com)
墨知通过促进知识共享、技术研究和合作交流,帮助组织和个人提高软件供应链的安全性,减少供应链攻击的风险,并保护软件生态系统的整体安全。
进入社区:墨知 - 软件供应链安全技术社区
原文来自:com.squareup.okhttp3:okhttp 组件安全漏洞及健康度分析_墨知 (oscs1024.com)
相关文章:

com.squareup.okhttp3:okhttp 组件安全漏洞及健康度分析
组件简介 维护者square组织许可证类型Apache License 2.0首次发布2016 年 1 月 2 日最新发布时间2023 年 4 月 23 日GitHub Star44403GitHub Fork9197依赖包5,582依赖存储库77,217 com.squareup.okhttp3:okhttp 一个开源的 HTTP 客户端库,可以用于 Android 和 Jav…...
【Unity的HDRP渲染管线下用Steam VR串流结合使用遇到的各种问题_SteamVR 插件和Pico串流助手】
用Steam串流VR 背景:1.项目准备:相关文档和社区资源需要下载的工具2.梳理工程渲染设置和场景烘培正确:几个概念的一些说明:1. SteamVR:2. SteamVR插件:3. OpenVR和OpenXR:4. XRI:5. Pico串流助手:6. "Mock Runtime"选项含义SteamVR插件导入配置好SteamVR Came…...

Unity——音乐、音效
在游戏运行的过程中,音效的播放时机与游戏当前内容密切相关,而且随着场景的变化、剧情的推进,背景音乐也需要适时切换,所以恰当地控制音乐和音效的播放非常重要。音乐和音效的播放、停止、切换和音量变化等,都需要由脚…...

Ubuntu 23.10 将首次推出基于 Flutter 的新 Ubuntu 商店
导读Ubuntu 正在升级其软件商店以提供顺滑的体验! 随着不断发展,Canonical 似乎全力以赴,将基于 Flutter 的元素整合到 Ubuntu 中。 在前段时间 Ubuntu 23.04 发布后,我们见到了基于 Flutter 的安装程序 ,现在&#x…...
linux scatterlist阅读三
sg_copy_buffer 函数定义: /*** sg_copy_buffer - Copy data between a linear buffer and an SG list* sgl: The SG list* nents: Number of SG entries* buf: Where to copy from* buflen: The number of bytes to copy* skip: Number of bytes to sk…...
2023新,centos7安装mysql8.0.25
2023新,centos7安装mysql8.0.25 目录 2023新,centos7安装mysql8.0.251、下载rpm文件2、安装3、配置my.cnf4、启动查看重启服务5、登入mysql并修改密码6、修改可以远程登录 1、下载rpm文件 进入到你想要的文件地址下 wget https://repo.mysql.com//mysq…...

Data Rescue Professional for Mac:专业的数据恢复工具
在数字化时代,我们的生活和工作离不开电脑和存储设备。但是,意外情况时常发生,例如误删除文件、格式化硬盘、病毒攻击等,这些都可能导致重要的数据丢失。面对数据丢失,我们迫切需要一款可靠的数据恢复工具。今天&#…...

新手小白想要做好跨境电商独立站,需要考虑哪些要素?
对于不少中小卖家而言,利用独立站出海已然成为下一个跨境热潮。但是采用独立站模式做出海生意前,卖家需要考虑哪些要素? 产品选择 对于国内的卖家来说,依托于国内强大的供应链优势,只要能把握住消费者心态࿰…...

Consul原理介绍
官方文档:https://www.consul.io/docs Raft动画演示:http://thesecretlivesofdata.com/raft/ 注册中心对比 Consul特点 服务发现、健康检查、Key/Value存储、安全服务通信(TLS证书)、多数据中心 架构 角色 数据中心 数据中心内…...

【C++实战】C++实现贪吃蛇(含源代码)—基于easyx图形库
食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识:C基础 ♈️今日夜电波:toge—あよ 0:36 ━━━━━━️💟──────── 4:03 &a…...
PHP获取两个日期之间的所有日期
下面是一个示例代码,用于计算给定开始和结束日期之间的所有日期: <?phpfunction getDatesBetween($start_date, $end_date) {// 初始化结果数组$dates array();// 将开始日期转换为时间戳$current_date strtotime($start_date);$end_date strtot…...
STL之stack(适配器讲解以及双端队列的讲解)
很多人在听到适配器的时候,应该都是懵的,因为对适配器的理解都是懵懵懂懂,其实他很好理解,就是相当于一个转换器。我们可以这样理解,就是现实当中是的插排一样,上面有三个孔的,也有两个孔的&…...

JVM解密: 解构类加载与GC垃圾回收机制
文章目录 一. JVM内存划分二. 类加载机制1. 类加载过程2. 双亲委派模型 三. GC垃圾回收机制1. 找到需要回收的内存1.1 哪些内存需要回收?1.2 基于引用计数找垃圾(Java不采取该方案)1.3 基于可达性分析找垃圾(Java采取方案) 2. 垃圾回收算法2.1 标记-清除算法2.2 标记…...
【Spring Boot】Spring Boot结合MyBatis简单实现学生信息管理模块
实战:实现学生信息管理模块 环境准备 JDKSpring BootMyBatis 创建Spring Boot项目 使用Spring Initializr创建一个新的Spring Boot项目,并添加以下依赖: Spring WebMyBatis FrameworkMySQL Driver 数据库设计 在MySQL数据库中创建一个名…...
【Java List与Map】List<T> Map与Map List<T>的区别(126)
List<T> Map:List里面的数据类型包含Map; Map List<T>:Map里面value的数据类型包含List; 测试案例: import java.util.ArrayList; import java.util.HashMap; import j…...
【FreeRTOS】常用函数总结
xTaskCreate(): 用法: xTaskCreate(taskFunction, taskName, stackSize, parameters, priority, taskHandle)参数: taskFunction:任务函数,即任务的入口函数。taskName:任务的名称。stackSize:任…...

The Cherno——OpenGL
The Cherno——OpenGL 1. 欢迎来到OpenGL OpenGL是一种跨平台的图形接口(API),就是一大堆我们能够调用的函数去做一些与图像相关的事情。特殊的是,OpenGL允许我们访问GPU(Graphics Processing Unit 图像处理单元&…...

linux中学习控制进程的要点
1. 进程创建 1.1 fork函数 #include <unistd.h> pid_t fork(void); 返回值:自进程中返回0,父进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核中的fork代码后,内核会做以下操作 分配新的内存块和…...
C++Qt QSS要注意的坑
qss源自css,相当于css的一个子集,主要支持的是css2标准,很多网上的css3的标准的写法在qss这里是不生效的,所以不要大惊小怪。 qss也不是完全支持所有的css2,比如text-align官方文档就有说明,只支持 QPushB…...
LeetCode每日一题:56. 合并区间(2023.8.27 C++)
目录 56. 合并区间 题目描述: 实现代码与解析: 排序 贪心 原理思路: 56. 合并区间 题目描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...