【发布时间】: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