【问题标题】:"Become customer" button on my website requires the POST customer endpoint to be public. I don't want it public. How do I get around this?我网站上的“成为客户”按钮要求 POST 客户端点是公开的。我不想公开。我该如何解决这个问题?
【发布时间】:2019-08-02 23:04:01
【问题描述】:

我有一个 Web 应用程序通过几个 REST 端点与后端通信。

我还有一个主页,人们可以在其中成为上述网络应用的客户。

所有 Web 应用程序的端点都需要调用身份验证(登录用户)(JWT 令牌),但在我的主页上我有一个“成为客户”按钮,它发出一个 POST /customers 请求,我必须公开(但我不希望任何人能够向我的端点发送新客户的垃圾邮件。

解决这个问题的标准方法是什么?

我在后端使用 Python、Flask 和 Flask-JWT。

【问题讨论】:

  • 验证码和速率限制是针对 DOS 攻击的典型防御措施。
  • 你不能。你真的认为主要服务(Facebook、Twitter、Instagram ......)没有通过发送垃圾邮件注册按钮自动创建的虚假用户吗?你可以添加一个 reCaptcha 或类似的东西来缓解它,但你可能无法完全阻止它。

标签: python rest flask jwt flask-jwt


【解决方案1】:

唯一的选择是在有限的时间内(30 分钟)添加一个用户角色。如果用户具有此角色,则他们有权查看它。

有意义吗?

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 2022-11-03
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多