【问题标题】:Does AWS serverless function (API gateway & Lamda) has security flaw?AWS 无服务器功能(API 网关和 Lamda)是否存在安全漏洞?
【发布时间】:2020-06-04 08:48:49
【问题描述】:

您好,我是 AWS 的新手,这是我的困境。

我创建了一个无服务器端点,我创建了一个基于“Node.js”的 lamda 函数(这是一个 POST 请求),配置了 API 网关并创建了舞台,最后给出了端点 URL 供客户端使用资源作为 RESTFul 服务。

用户正在获取数据,一切顺利,直到我发现用户有一个简单的 HTML 页面,其中嵌入了“JQuery”代码,令我惊讶的是,这个页面的 API 密钥嵌入到了请求的标头部分为 "headers: {"x-api-key": }"。

这是实现的理想方式吗?因为我通过打开 HTML 页面在 Chrome 上查看源代码时能够看到键值。

【问题讨论】:

  • 我不明白。因此,您创建具有关联 Api key 的 API 并将其提供给您的客户端。客户为自己创建了一个简单的网站,该网站使用密钥访问您的 api?
  • 是的,因为他们会利用这个宁静的资源
  • 是的,所以每个找到这个网站的人都可以访问你的api。也许考虑为 api 提供更安全的身份验证机制,例如使用 Cognito 用户池或自定义 lambda 授权。

标签: jquery node.js amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

API 密钥并不意味着安全。它们主要用于支持使用计划并逐个客户端处理客户端(API 密钥)的限制。 API 密钥不安全,不应被视为一种身份验证方式。

【讨论】:

    【解决方案2】:

    正如 Amit 正确指出的那样,您与用户共享的 api-key 生成一次并始终使用。无法保证将在何处以及如何使用它。

    如果您需要严格的安全性,您应该使用短期的临时安全凭证。这些凭据的有效期很短(例如 1 小时),然后过期。

    这很简单,因为用户将使用他们的用户名、密码组合通过网页登录,成功登录后应用程序将收到临时凭据。

    这些临时凭证应用于进行 API 调用,API 将在授予对资源的访问权限之前验证凭证。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 2010-09-18
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多