在把代理配置放进公开仓库之前
把代理端点与代理凭据分开,并说明为什么公开前者并不等于提供访问控制。
配置文件里的代理主机名并不等同于代理密码。公开其中任何一个都值得慎重决定,但两者的后果不同。
端点告诉读者服务可能在哪里可达。像 http://name:[email protected]:8080 这样的 URL 还会给他们可用的凭据。绝不能仅仅因为它看起来像一个地址就当作无害。
隐藏的地址不是访问策略
私有代理需要与其用户相称的控制:身份验证、允许的客户端网络以及目的地限制。把地址挡在仓库之外并不能替代这些控制。公开可达的服务即使没人读你的配置,也可能被发现。
反过来,公开服务地址也不能证明它是开放的。端点仍可能要求凭据,或只能从预期网络到达。请检查实际的访问边界,而不是假设保密和身份验证是一回事。
对于可分享的示例,请使用文档用的主机名并省略机密。把私有配置放在项目既有的机密或本地配置机制中。注意生成的文件和被复制的诊断日志,其中可能包含完整的凭据 URL。
如果凭据已经泄露,先通过撤销或轮换使它们失效。只编辑最新文件并不能删除副本、以前的提交或缓存内容。GitHub 关于敏感数据的指南解释了为什么清理历史是另一项工作。
有用的检查要看两方面:公开的信息授予了什么访问权限,以及即使地址已知,代理是否仍受到限制。