保护ASP.NET Web API服务的外部API端点安全(ASP.NET 4.6)

时间:2019-03-12 21:51:27

标签: c# asp.net-mvc web-services security asp.net-web-api

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

当前有100,000多名订户,如果​​恶意用户找到此端点,他们可以随机尝试使用订户ID并找到有效的订户,那么给定一个ID长度为50+个字符,并且向他们发送电子邮件的可能性是多少?大约有100000个有效的订户ID。

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

1 个答案:

答案 0 :(得分:1)

使用JWT是保护Web API安全的好方法 如果您使用ASP.NET Core构建Web API,则使用它会更加容易,因为它是内置功能。<​​/ p>

此外,您对订户可以发送的电子邮件数量有一些限制吗?为每个用户(每分钟,每小时,每天等)设置一个阈值可能是一个好主意,这样就可以避免受到可访问Web API的恶意用户的垃圾邮件攻击。