为什么有些应用程序将 API 托管在不同的域中?

信息安全 Web应用程序 api dns 域
2021-08-29 07:39:35

我已经看到应用程序将其 API 转移到其他域(从 api.application.com 到 api.applicationapi.com)的趋势。

两个例子:3.basecampapi.com 和 api.dropboxapi.com

将 API 托管在与仪表板或营销网站不同的域中是否有安全优势?为什么一个子域是不够的?

2个回答

将 API 托管在与仪表板或营销网站不同的域中是否有安全优势?

一句话,韧性

一个好处是,如果 API 位于完全不同的域中,则由于仪表板或营销网站上的内容而设置的任何安全块都不会影响 API。

(例如,如果“营销”指的是 Wordpress 或 Drupal,那么这些块可能是一个非常现实的威胁!)

我对Google Blacklist触发的阻止有直接的经验,它们会影响域名及其子域。如果 example.com 最终带有恶意软件,那么 api.example.com(和 api.api.example.com)也将被阻止。

迁移到 api.exampleapi.com 会干净地隔离 API,因此如果 example.com 被列入黑名单,它不会受到影响。

为什么一个子域是不够的?

同样,至少对于 Google,块也可以扩展到子域。此外,基于 DNS 的过滤器(如 OpenDNS 通配符)也会阻止所有子域。

假设 Dropbox Web 应用程序会为 设置会话 cookie *.dropbox.com,那么这个 cookie 也会被发送到api.dropbox.com

由于会话 cookie 与安全性非常相关,因此最好限制其分布范围。使用单独的域api.dropboxapi.com可确保浏览器永远不会在那里发送会话 cookie。

然后 Dropbox 甚至可以允许带有凭据的 CORS,api.dropboxapi.com而不会冒有人劫持 Dropbox Web 应用用户的会话 cookie 的风险。API 请求将使用令牌而不是会话进行。