首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【腾讯云代码分析】代码库开源合规检查-经典案例分享 (1)

【腾讯云代码分析】代码库开源合规检查-经典案例分享 (1)

作者头像
CodeDog
发布2024-10-31 13:25:01
发布2024-10-31 13:25:01
2990
举报

官网地址:(点击最下方【阅读原文】可直达)https://tca.tencent.com/

官网介绍:https://cloud.tencent.com/product/tcap 官方开源:https://github.com/Tencent/CodeAnalysis 国内镜像:https://git.code.tencent.com/Tencent_Open_Source/CodeAnalysis

背景介绍

随着开源软件的发展,越来越多的企业和组织开始使用开源软件。然而,随着开源软件的使用范围和规模的不断扩大,也暴露出了一些合规问题,如许可证冲突、版权侵犯、安全漏洞等。

本文介绍TCA在进行代码库开源合规检查中,解决许可证冲突的经典案例。

规则介绍

我们在项目开发过程中,经常会引入第三方开源组件。需要特别注意的是这些开源组件的License协议,比如是否具备强传染性、分发或修改是否符合法务合规安全、是否强制要求开源等。因此,识别出开源组件使用的License是至关重要的第一步,然后可以根据这些License有针对性的去处理。

TCA集成工具LicenseClassifier,能够准确识别代码库中的明文License,不管是LICENSE文件、文本文件、Markdown文档或源代码,都是检测目标。

同时,LicenseClassifier还根据 Google License Classification(https://opensource.google/documentation/reference/thirdparty/licenses)对License进行了分类,我们将分类映射到严重级别:

Classification

Severity

Rule

Forbidden

CRITICAL

critical-risk

Restricted

HIGH

high-risk

Reciprocal

MEDIUM

medium-risk

Notice

LOW

low-risk

Permissive

LOW

low-risk

Unencumbered

LOW

low-risk

Unknown

UNKNOWN

unknow-risk

经典案例

案例一

  • 案例分析: 这是个java源码文件,文件头部带有license信息,识别出来为高严重级别的 GPL-2.0 协议。该协议具有强传染性,要求复制和分发必须带上许可证和免责声明,如果修改后分发,则要授权所有人都可免费使用、复制、修改、再分发。
  • 解决方案: 建议使用更低严重级别License的组件来替换;如果不涉及修改,则不需要被迫开源,只要附上许可证和免责声明即可。

案例二

  • 案例分析: 这是个LICENSE文件,识别出了致命严重级别的Commons-Clause协议。该协议禁止对软件进行任何商业用途,禁止售卖,因此无法用于任何商业行为。
  • 解决方案: 商业软件中严禁使用此License的组件,需要删除或替换。

规则使用说明

进入页面,点击方案->规则配置 -> 添加规则 -> 搜索工具名 LicenseClassifier ->批量添加规则

关注我们,

持续为您的代码助力!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云代码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 规则介绍
  • 经典案例
  • 规则使用说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档