com.graphql-java:graphql-java 组件安全漏洞及健康度分析

文章更新时间:2023-09-27 16:20

com.graphql-java:graphql-java

组件简介

维护者graphql-java 组织许可证类型MIT
首次发布2018 年 6 月 4 日最新发布时间2021 年 5 月 23 日
GitHub Star5933GitHub Fork1118
依赖包365依赖存储库1,689

com.graphql-java:graphql-java 是一个用于 Java/JVM 的 GraphQL 服务器实现,它提供了一个灵活的、高性能的、完全符合规范的 GraphQL 引擎。

官网:https://www.graphql-java.com/documentation/getting-started/

官方仓库:https://github.com/graphql-java/graphql-java

参考链接:

https://mvnrepository.com/artifact/com.graphql-java/graphql-java

https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.graphql-java:graphql-java

组件健康度

技术健康度该组件使用了 Java 语言,这是一种成熟、稳定、跨平台的编程语言,具有良好的性能和可扩展性。该组件遵循了 GraphQL 规范,并且支持各种特性,如类型系统、查询语言、执行引擎、错误处理、数据加载器、批量处理等。该组件还提供了一些高级功能,如自定义标量、指令、架构生成、订阅等。该组件的技术健康度较高。
社区健康度该组件是由 graphql-java 组织维护的,该组织是一个专注于 GraphQL Java 实现的开源社区。该组件在 GitHub 上有超过 6.5k 的星标和 1.3k 的 fork,表明它受到了广泛的关注和使用。该组件也有一个活跃的贡献者团队,目前有 122 名贡献者,并且经常有新的 pull request 和 issue 被提交和解决。该组件还有一个官方的 Slack 频道,用于交流和支持。该组件的社区健康度较高。
更新和维护频率该组件目前处于 v20.x 版本,最近一次的发布是在 2021 年 9 月 16 日,距离现在不到半年。该组件的更新频率较高,每个月都会有新的版本发布。该组件也有一个明确的发布计划,用于跟踪未来的版本和功能。该组件的维护频率也较高,每个月都会有大量的 commit 和 issue 被处理。该组件的更新和维护频率较高。
兼容性该组件要求至少 Java 8 的运行环境,这是一个比较低的要求,可以适应多数的 Java 应用场景。该组件也支持与其他 Java 库或框架集成,如 Spring Boot、graphql-java-tools、graphql-java-extended-scalars 等。该组件还提供了一些扩展点,如数据加载器、指令、标量等,用于自定义 GraphQL 行为和类型。该组件的兼容性较好。
文档和支持该组件有一个完善的文档网站,包括了快速入门、教程、基础知识、高级主题等内容。文档内容丰富而详细,覆盖了大部分的使用场景和问题。文档网站还提供了一个在线演示工具,用于体验和测试 GraphQL 查询。文档网站还提供了一个购买书籍的链接,书籍是由该组件的维护者编写的,涵盖了更多的深入内容和实践经验。文档网站还提供了一个 Slack 频道的链接,用于加入社区和获取支持。文档网站还提供了一个 GitHub 仓库的链接,用于查看源码和提交 issue。该组件的文档和支持较好。

com.graphql-java:graphql-java 是一个技术健康度、社区健康度、更新和维护频率、兼容性、文档和支持都较高的组件,可以作为一个可靠的 GraphQL Java 实现。该组件的健康度较高。

参考链接:

https://github.com/graphql-java/graphql-java

https://www.graphql-java.com/

https://www.graphql-java.com/documentation/getting-started/

https://github.com/graphql-java

https://github.com/graphql-java-kickstart/graphql-java-tools

https://www.graphql-java.com/documentation/getting-started/

组件许可证解读

MIT 许可证是一种非常宽松的自由软件许可证,它起源于麻省理工学院。它可以分为三个部分,分别是:

  • 授予条款:这个部分允许用户对软件进行任何操作,例如使用、复制、修改、合并、发布、分发、再许可和/或出售软件,不需要支付费用或获取许可。
  • 条件条款:这个部分要求用户在软件的所有副本或实质部分中,包含版权声明和许可声明,以保护作者或版权所有者的知识产权,以及让用户知道软件的许可证。
  • 免责条款:这个部分声明作者或版权所有者对软件不承担任何责任,包括保证、担保、索赔、损害或其他责任,无论是因为软件本身或软件的使用而导致的。

MIT许可证是一种非常宽松的开源许可证,鼓励软件的自由使用、修改和分发,同时降低了法律责任。

许可证原文链接:https://github.com/graphql-java/graphql-java/blob/master/LICENSE.md

组件漏洞版本及修复方案

漏洞编号漏洞标题漏洞等级影响版本修复版本
MPS-2023-8874GraphQL Java 安全漏洞低危[1.2,17.5)17.5
MPS-2022-53647graphql-java <19.0 存在拒绝服务漏洞高危(-∞,0.0.0-2022-07-26T05-45-04-226aabd9)0.0.0-2022-07-26T05-45-04-226aabd9

同类型可替代组件

  • Neo4j Graph Database:这是一个图数据库,可以将数据之间的关系展现出来。它支持各种图查询语言,如 Cypher、Gremlin、SPARQL 等。它也提供了一个 GraphQL 接口,可以用 GraphQL 查询图数据。官网:https://neo4j.com/developer/graph-database/
  • Redis:这是一个高性能的键值存储系统,可以存储字符串、哈希、列表、集合等数据结构。它也支持图数据模型,可以用 RedisGraph 模块实现图查询和分析。官网:https://redis.io/
  • Azure Cosmos DB:这是一个分布式的多模型数据库,可以支持文档、键值、列族、图等数据模型。它也提供了一个 GraphQL API,可以用 GraphQL 查询和操作数据。官网:https://azure.microsoft.com/en-us/products/cosmos-db
  • ArangoDB:这是一个开源的多模型数据库,可以支持文档、键值、图等数据模型。它也提供了一个 GraphQL 接口,可以用 GraphQL 查询和操作数据。官网:https://www.arangodb.com/

组件SBOM

组件名称版本是否直接依赖仓库
com.google.guava:listenablefuture9999.0-empty-to-avoid-conflict-with-guavamaven
org.antlr:ST44.3.4maven
com.google.guava:guava32.1.2-jremaven
org.antlr:antlr4-runtime4.11.1maven
com.google.guava:guava-parent32.1.2-jremaven
com.google.guava:failureaccess1.0.1maven
org.antlr:antlr44.11.1maven
com.ibm.icu:icu4j71.1maven

该SBOM清单仅展示部分内容

完整SBOM清单及检测报告:

https://www.murphysec.com/console/report/1706943085367050240/1706943085450936320?allow=1

(0)
上一篇 2023年9月26日 下午5:17
下一篇 2023年9月27日 下午5:08

相关推荐