我的工作设置包括一个公司托管的和Azure管道。有了shields.io这样的站点,我就可以为构建成功或代码覆盖率生成徽章,而无需使用DevOps进行身份验证。该徽章然后托管在shields.io上,这意味着这个第三方站点必须以某种方式访问我的构建过程。它们看起来是这样的:

由于github以及所有构建管道显然都是公司内部的,我可以看到三个选项:
我在网上或堆叠溢出上找不到关于这个的任何东西。我很高兴有任何资源来解释这一点,因为我不确定我是否能够安全地使用它们。使用shields.io会带来安全风险吗?
发布于 2020-01-23 15:40:48
您提到的徽章通常只是空白的SVG图像,没有这些信息(您可以查看这里的模板)。
因此,对于要创建SVG (或PNG)的服务:
GET端点上。该处有两种方式来实现这一目标:
因此,无论哪种方式,拥有徽章的SaaS应用程序通常自己为它们服务(即使在内部它们调用了shields.io)。这意味着每个服务都可以自己实现任何安全措施。
传递给shields.io的数据通常包括两个单词和一些颜色。因此,为了生成徽章而公开的信息不多(见下面的示例)。此外,服务和shields.io之间的通信是加密的,并通过HTTPS发送。
就隐私而言,一个例子是,大公司通常拥有只能在内部访问的解决方案,因此徽章也只能在内部访问。
您的问题中专门包含的徽章只包含来自应用程序商店或GitHub项目的明星的公共数据,这些数据通常是公开的,只要项目本身是公共的。这些徽章经常使用shields.io API来使用公共数据自动生成它们。
但如果你看看徽章上的东西,比如工作服或特拉维斯,你就会发现它们有自己的徽章:
<img src="https://travis-ci.org/Kibibit/achievibit.svg?branch=master"><img src="https://coveralls.io/repos/github/Kibibit/achievibit/badge.svg?branch=master">下面是一个关于如何使用shields.io作为库创建一个徽章并提供它的一个类型记录示例:
首先,将gh-徽章安装在
npm i gh-badges --save你就是这样用的:
import { BadgeFactory } from 'gh-badges';
(async () => {
const bf = new BadgeFactory();
const format = {
format: 'svg',
text: [ 'coverage', '90%' ],
labelColor: '#894597',
color: '#5d5d5d',
template: 'for-the-badge',
logo: [
'data:image/png;base64,iVBORw0KGgoAAAA',
'NSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJL',
'R0QA/wD/AP+gvaeTAAAA/0lEQVRYhe3WMU7DM',
'BjFcadqh0qdWWBl7QU4Ss/AjsREF8RdOhYO0E',
'qoN2DhFIgBOvBjIIMVxSFyUiEhP8lD7C/v/T9',
'7sEMoKkoIe+Npn8qpOgCM2VBVVa1ZkzFDcjQd',
'apDqLIR+u/jnO1AACkABKABdAO9DjHEWfb7lA',
'LwOAQghXPXx6gJ4zE3GJIRwE0095Zhc4PO3iz',
'7x7zoq+cB5bifr9tg0AK7xFZXcZYXXZjNs+wB',
'giofG8hazbIDaeI5dFwAu8dxY2mE+KDyCWGCT',
'YLj3c86xNliMEh5BVLjFseNEjnVN8pU0BsgSh',
'5bwA5YnC25AVFjhpR6rk3Zd9K/1Dcae2pUn6m',
'qiAAAAAElFTkSuQmCC'
].join('')
};
return bf.create(format);
})();--这基本上是作为上面提到的服务端点发送到shields.io的数据。
关于它的风险,主要考虑的是这里实际暴露的数据。几乎什么都没有。如果您担心数据隐私,您只需自己生成徽章并为它们提供服务,或者根据您的意愿将它们嵌入;-)
https://stackoverflow.com/questions/59881949
复制相似问题