是否有办法通过主机名过滤传入的HTTP请求?



我们开发了一个集成了第三方服务的web应用程序。其中一个集成第三方服务将调用我们的API服务器来更新一些状态(类似于支付网关)。

最初我们服务器上的API没有身份验证,所以我们认为我们应该有一些检查来验证回调是真实的。

第三方服务已经完成了我们的项目,拒绝修改他们这边的代码,他们的服务器有动态IP,所以我们无法通过IP加入白名单。他们的工程师建议我们把他们的主机名列入白名单。

我们考虑过获取源IP和反向DNS。这种方法仅在某些情况下有效,而不适用于云VM的自定义域。解析后的主机名将是虚拟机的主机名,而不是自定义域。

他们的工程师听起来这是一个常见的做法,很容易实现,我们遗漏了什么吗?我们完全控制防火墙、DNS记录和API代码。

我认为通常的做法是为您的情况添加相互认证。你的回调接口看起来像一个开放的api,你需要验证由AES或RSA算法加密的回调参数签名。如果第三方坚持不更改代码,他们可以添加一个具有固定IP的代理服务器。

最新更新