0

我们有一个要求,我们需要允许潜在的许多用户将一条消息添加到 Azure 队列服务。使用共享访问签名,我们可以允许用户在有限的时间内将消息添加到队列中。但是是否也可以将我们生成的每个 SAS 令牌限制为最多 1 条消息?或者潜在的恶意用户能否在 SAS 令牌生命周期内将无限数量的消息插入队列?

4

1 回答 1

1

但是是否也可以将我们生成的每个 SAS 令牌限制为最多 1 条消息?

不幸的是没有。令牌在发出的时间段内有效,发送消息的唯一限制是存储队列限制。

或者潜在的恶意用户能否在 SAS 令牌生命周期内将无限数量的消息插入队列?

是的。这是一个有效的场景。

到今天为止,如果您想对队列(谁发送什么/何时/多少)进行这种精细控制,您必须自己控制流量。

更新

对于 Table 它是不同的 - 您可以将 SAS 令牌限制为特定的PartitionKey 特定RowKey的,从而有效地使 SAS 只能处理一个表格行!

查看文档。有参数spk(start Part.Key)、srk(Start RowKey)、epk(End Part.Key)、erk(End RowKey)。

使用 Table 和 Table SAS,您可以限制单个用户可以发送的数据!但是,限制数据量或请求数量的唯一方法是自己进行门控,或者对 SAS 生命周期做出艰难的决定。

于 2013-06-05T09:24:43.347 回答