为ASP.NET Web API服务(ASP.NET 4.6)确保外部API端点



我正在构建一个外部API端点,该端点将向订户发送电子邮件通知。当订户(50个字符)和消息字符串传递到端点时,该服务将通过电子邮件发送消息给订户电子邮件地址。由于服务的性质,它不能被IP地址或证书文件或使用OAuth2锁定。第三方将使用消息发送给订户的消息。

当前有100,000多个订户,如果恶意用户找到这个终点,他们可以随机尝试订户并找到有效的终点,并开始向他们发送电子邮件,因为ID长50多个字符,并且大约有100000个有效的订户。

确保此API端点的最佳选择是什么?到目前为止,这是我的想法,要么添加一个API密钥,只有第三方知道并将每个订户的令牌发送和/或生成一个令牌,然后将其保存到数据库,然后在端点上需要它们

使用JWT的固定Web API的好解决方案如果您使用ASP.NET Core构建Web API,则使用它更容易,因为它是内置功能。

另外,您是否对订户可以发送的电子邮件数量有一些限制?对于每个用户(每分钟,每小时,每天等)都有一个阈值可能是一个好主意,因此您可以避免受到具有访问Web API的恶意用户的垃圾邮件。

相关内容

  • 没有找到相关文章

最新更新