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] 。请你合并所有重叠的区间&…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...