安全用户注册 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 端点的主要内容,如果未能解决你的问题,请参考以下文章

处理django rest framework + vue SPA auth

防止不受信任的客户端使用 REST API 的登录/注册端点

<script> 的 Django REST 框架密码安全性

在 Chrome 扩展程序中安全地存储 Django REST API 令牌

密码更改需要来自 RESTful 令牌服务的响应

使用 Postman 进行 Django Rest Framework 令牌身份验证