Xray如何检测包许可证?

Amith Kumar Mutakari
2022-12-27 12:28

Xray通过以下方式检测许可证并根据任何包许可证进行验证:

  1. 匹配公共组件的许可证JXray(JFrog的全球漏洞数据库服务器)通过比较这些组件的校验和
  2. 扫描元数据文件(pom.xml, package. xml)。Json等)
  3. 分析licenses.txt文件并确定是否至少有85%的匹配(使用Levenshtein距离逻辑,也称为编辑距离)

为了进一步说明,让我们考虑一个例子,其中Xray比较许可证文本到包的许可文件并发现匹配。例如,看一下BSD 3-Clause清除许可证在这里,这似乎与LICENSE.md文本在这里.在这种情况下,Xray会将后者的文本与其他许可进行比较,并相应地标记匹配。

用户添加图片

关于百分比匹配

x射线执行逻辑比较已知许可证与包许可证(文本)的例程。如果85%或者任意两个文本中有多个相似,则标记匹配。

在上面的例子中,许可证。md和BSD 3-Clause Clear License比较被标记为这样的匹配。匹配标记不需要100%匹配的原因是,人们倾向于通过编辑文本的离散方面来更改许可,更不用说不同的许可通常可能具有不同作者的名称。