我有一个 REST Web 服务,其中包含一种发送 SMS 消息的方法,我想确保此功能只能由任何给定用户每 10 秒执行一次。移动设备是否有唯一的 IP 地址?如果有,这是否足以阻止请求每 10 秒发出超过 1 个请求?
答案1
为了避免 IP 耗尽等问题,ISP 通常使用私有 IP 地址,并通过公有 IP 地址池对其进行 NAT。
因此,对每个(公共)IP 进行速率限制是没有意义的。
答案2
将每个 IPv4 地址限制为每 10 秒发送一条消息将会将该服务的总使用量限制为平均每秒 370 000 000 条消息。
任何进一步的担保将完全取决于提供商。
许多提供商正在部署运营商级 NAT,因此单个公共 IPv4 地址后面可能有数千名用户。
另一方面,有些人有权使用数千个不同的公共 IPv4 地址(有些是合法的,有些则不是合法的)。