【发布时间】:2019-01-07 05:21:03
【问题描述】:
我正在使用 AWS 实现 API 网关。
如果资源需要 API 密钥,我是否需要在资源上启用 CORS?启用 CORS 是否为我提供了 API 密钥要求没有的额外安全层?
或者是否需要 API 密钥来调用 API 网关会使 CORS 变得多余,因为即使发出来自另一个来源的请求 - 该来源也没有 API 密钥。
【问题讨论】:
标签: amazon-web-services aws-api-gateway
我正在使用 AWS 实现 API 网关。
如果资源需要 API 密钥,我是否需要在资源上启用 CORS?启用 CORS 是否为我提供了 API 密钥要求没有的额外安全层?
或者是否需要 API 密钥来调用 API 网关会使 CORS 变得多余,因为即使发出来自另一个来源的请求 - 该来源也没有 API 密钥。
【问题讨论】:
标签: amazon-web-services aws-api-gateway
首先是 CORS 和 API Key 功能有不同的原因。
API 密钥 - 启用 API 密钥后,每个消费者都需要发送 API 密钥及其请求。这基本上是为了监控使用情况并限制来自个人消费者的请求。
CORS - 这基本上是三个授予现代浏览器直接访问用于 B2C 集成的 API。如果为特定域配置了 CORS,则仅允许托管在特定域中的网站直接从客户端访问 API(使用 JavaScript 和 AJAX)。但是,这可能不适用于 API 的 B2B 集成,即使没有配置 CORS,也可以从后端访问 API。
是否需要 API 密钥来调用 API 网关会使 CORS 变得多余,因为即使发出来自另一个来源的请求 - 该来源也没有 API 密钥。
是的,如果启用 API 密钥,每个源在访问 API 时都必须有一个 API 密钥。但是,CORS 解决了一个不同的问题,即 Web 浏览器强制执行策略以限制仅从白名单域访问 API(否则人们将能够将 API 调用从不同的网站发送到 API,只需添加脚本和 URL将重载 API)。
【讨论】: