从浏览器应用程序向 API 层进行身份验证时,您可以验证 CORS 请求的请求来源。我知道这主要是为了防止 CSRF 攻击。它不会阻止攻击者自己访问端点,但它确实可以防止攻击者劫持毫无戒心的用户的浏览器,当用户在攻击者控制的域上时,在不知不觉中通过 AJAX 请求访问端点。
我的问题是,在实现 API 到 API 通信时验证请求来源有什么好处吗?例如,假设两个 API 被构建用于在彼此之间处理请求,使用共享密钥(为简单起见,一个 API 密钥——但根据访问需求,可能适用更高级的方法,如 OAuth)。除了验证 API 密钥之外,服务器是否还应该检查请求的主机以确认它来自受信任的 API 服务器?还是请求主机很容易被欺骗(因为请求将来自另一个服务器,并且完全控制它在 HTTP 请求中发送的标头),因此这样的检查将毫无意义?