我们需要允许潜在的许多用户向Azure队列服务添加一条消息。使用共享访问签名,我们可以允许用户在有限的时间内将消息添加到队列中。但是,我们生成的每个SAS令牌是否也可以限制为最多1条消息? 或者,在SAS令牌生命期内,潜在恶意用户是否可以将无限数量的消息插入队列?
答案 0 :(得分:1)
但是,每个SAS也可以限制为最多1条消息 我们生成的令牌?
不幸的是没有。令牌在发布的时间段内有效,发送的消息的唯一限制是存储队列限制。
或者潜在恶意用户可以插入无限数量的 在SAS令牌生命期内消息进入队列?
是。这是一个有效的方案。
截至今天,如果您希望对队列进行精细控制(谁发送什么/何时/多少),您必须自己控制流量。
<强>更新强>
对于表格不同 - 您可以将SAS令牌限制为特定PartitionKey
和特定RowKey
,从而有效地使SAS仅能够使用一个表行!
查看docs。有参数spk
(start Part.Key),srk
(Start RowKey),epk
(End Part.Key),erk
(End RowKey)。
使用Table和Table SAS,您可以限制单个用户可以发送的数据!但限制数据量或请求数量的唯一方法是自己选择,或者做出关于SAS生命周期的艰难决定。