一个简单的 HTTP 代理,可以遮掩不良 URL
Smokescreen 是一个 HTTP CONNECT 代理,它代理大部分 Stripe 到的流量。 外部世界(例如,Web钩子)。
Smokescreen 限制了它连接的 URL: - 它使用预先配置的主机名 ACL 来只允许请求到某些允许列表中的主机名, 以确保没有恶意代码尝试向意外的服务发出请求。 - 它还解析每个请求的域名, 并确保它是一个可公开路由的 IP 地址, 而不是内部 IP 地址。这可防止某类攻击,例如,我们自己的 Webhooks 基础设施被用来扫描 Stripe 的内部网络。 Smokescreen 还可以进一步配置以允许或拒绝特定的 IP 地址或地址范围。
Smokescreen 还允许我们集中从 Stripe 进行出口,从而使我们能够为金融合作伙伴提供稳定的出口 IP 地址,并隐藏 Stripe 服务发出请求的细节。在典型的使用场景中,客户通过 mTLS 与 Smokescreen 进行连接。接收连接后,Smokescreen 会使用可配置的 CA 和 CRL 集对客户端证书进行身份验证,提取客户端的身份信息,并使用可配置的按客户端的 ACL 来检查客户端请求的 CONNECT 目标。
默认情况下,Smokescreen 会根据 TLS 证书中的"通用名称"识别客户端(如果有)。客户端识别功能也可以轻松替换;详细内容请参阅使用部分。
go build、go test、go mod tidy 会自动下载任何新依赖项的最新版本。运行 go mod vendor 将会将依赖项上传到 vendor 目录。暂无开放 Issues,或尚未同步最近议题。