【问题标题】:Securing External API EndPoint for ASP.NET Web API Service (ASP.NET 4.6)保护 ASP.NET Web API 服务的外部 API 端点 (ASP.NET 4.6)
【发布时间】:2019-03-13 06:09:23
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    保护 Web API 的一个很好的解决方案是使用 JWT 如果您使用 ASP.NET Core 构建 Web API,使用起来会容易得多,因为它是一个内置功能。

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

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 2012-07-31
      相关资源
      最近更新 更多