【问题标题】:Limiting Request to Web API that are coming from same location限制对来自同一位置的 Web API 的请求
【发布时间】:2020-06-02 14:45:36
【问题描述】:

我们有一个网络 API,允许匿名 [AllowAnonymous] 用户使用我们自己的移动应用程序(Android 和 iOS)进行注册。最近有报道称,有多个用户使用我们不允许的相同电子邮件地址注册。我们有多项检查不允许这种情况发生。当我们检查我们的 IIS 日志时。我们有这样的东西:

2020-02-15 18:40:42 XXX.XXX.X.XX POST /api/Account/Register - 8082 - Y.YY.YYY.YYY OurIOSAppName/3+CFNetwork/1121.2.2+Darwin/19.3.0 - 400 0 64 69968
2020-02-15 18:40:42 XXX.XXX.X.XX POST /api/Account/Register - 8082 - Y.YY.YYY.YYY OurIOSAppName/3+CFNetwork/1121.2.2+Darwin/19.3.0 - 200 0 0 13218
2020-02-15 18:40:42 XXX.XXX.X.XX POST /api/Account/Register - 8082 - Y.YY.YYY.YYY OurIOSAppName/3+CFNetwork/1121.2.2+Darwin/19.3.0 - 200 0 0 17390

似乎我们的 web api 正在使用 AlamoFire 接收来自 iOS 移动应用程序的多个请求,对于 Android 的 RetroFit 也是如此。有没有办法防止这种情况发生?

【问题讨论】:

    标签: .net asp.net-core-webapi iis-10


    【解决方案1】:

    问题不在于同时有多个请求,而是您用于创建用户的代码存在竞争条件。有很多方法可以解决这个问题,下面两张票只是一个开始。

    Preventing race condition of if-exists-update-else-insert in Entity Framework

    https://softwareengineering.stackexchange.com/questions/263726/how-to-prevent-race-conditions-in-a-web-application

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多