代码之家  ›  专栏  ›  技术社区  ›  BenMorel Manish Pradhan

假设公共SQS队列的URL可以保密,安全吗?

  •  0
  • BenMorel Manish Pradhan  · 技术社区  · 5 年前

    我很想用 SQS long polling 此功能:

    • 每个餐厅创建一个SQS队列
    • 为每个队列指定一个伪随机的秘密名称
    • 将其公开,以便浏览器可以直接从队列中读取和删除

    如果队列URL只会出现在给定餐厅的管理区域中,那么可以安全地假设无法猜测由伪随机秘密名称组成的SQS URL吗?

    奖金问题: 有更好的选择吗? 我会特别考虑另一种选择,允许我为所有餐厅创建一个单一队列,并使用websockets代替长轮询。

    1 回复  |  直到 5 年前
        1
  •  1
  •   jarmod    5 年前

    我强烈建议不要通过默默无闻来保证安全。如今,使用自动脚本在几秒钟内枚举数百万个可能的URL非常容易。

    我不确定您的用例,但是 AWS AppSync 是一种非常通用的服务,可以为您提供解决方案。

        2
  •  0
  •   stdunbar    5 年前

    我同意我不会公开你的队列。我认为有两种可能的解决方案:

    1. 队列前面的某种代理。正如建议的那样,您希望您的用户登录到某些位置。这样,就可以为它们提供一个短期密钥(如JWT),该密钥可以通过API网关等进行验证。API网关将位于Lambda的前面。API网关为您提供了执行IP通过/阻止列表、限制和其他控制等操作的潜力。
    2. 非AWS发布/订阅服务,如PubNub。虽然我不能告诉你他们是否在使用WebSocket或长轮询,但你真的不在乎——这是他们的Javascript库。一个优点是,他们也有大量的后端库,您可以与它们集成。我与PubNub没有关联,但在过去使用过它们。
    推荐文章