.net - 限制对来自同一位置的 Web API 的请求
问题描述
我们有一个 web api,我们允许 anon[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
似乎我们的网络 api 正在使用 AlamoFire 接收来自 iOS 移动应用程序的多个请求,并且与 Android 的 RetroFit 相同。有没有办法阻止这个?
解决方案
问题不在于同时有多个请求,而是您用于创建用户的代码具有竞争条件。有很多方法可以解决这个问题,下面两张票只是一个开始。
推荐阅读
- r - 在 R ggplot2 中为同一因子内的每个点显示不同的符号
- python - Numpy非零函数不起作用/没有零的numpy数组的最小值
- c# - VS2017 Live 视觉树自动选择不起作用
- c++ - 大条目的慢 std::map
- c++ - 为什么 Visual Studio 给出的结果比 g++ 不同?这里涉及未定义的行为吗?
- php - 获取数组中 20% 元素的方法 - PHP
- mysql - MySQL 查询以获取产品变体
- python - 在 Django 中模拟按属性过滤,使用属性和查询集注释
- javascript - ReactJS- 在 onclick 事件上渲染模态组件
- ios - 领域关系如何实现