安全用户注册 django rest 端点

Posted

技术标签:

【中文标题】安全用户注册 django rest 端点【英文标题】:security user registration django rest endpoint 【发布时间】:2017-06-04 16:52:46 【问题描述】:

我想使用 django rest 框架实现一个用户注册端点。端点将是公共的,任何人都可能注册一个新用户以访问该站点的受限版本。注册端点将执行一个 POST 操作和一个 JSON 对象,其中包含例如名字、姓氏、电子邮件和密码。问题是由于端点的性质是公开的,有人可以编写一个 pyCurl 脚本来创建一堆新用户,我想避免这种情况。如何正确保护我的端点以避免这种情况?我目前不知道要采取什么行动。我可以使用 CSRF 和 django 模板制作一个注册页面。这可能是一个解决方案,让应用程序的其余部分可以在 angular2 下运行。理想情况下,我想避免这种情况。

有什么想法吗?谢谢

【问题讨论】:

【参考方案1】:

一种解决方案是验证新注册用户的电子邮件。创建的用户将被设置为非活动状态,直到他们验证了他们的电子邮件地址。 验证可以通过在他们的电子邮件地址发送包含令牌和 UID 的链接(参见 django 的 PasswordResetTokenGenerator)来完成。通过点击此链接,用户可以激活他的帐户并登录到您的网站。

至于 CSRF,在向服务器发送数据(post、put、patch 等)时应始终使用它

【讨论】:

以上是关于安全用户注册 django rest 端点的主要内容,如果未能解决你的问题,请参考以下文章